0

ローカルネットワークにストレージがあり、ファイルを含むフォルダのツリーがあります。

同じネットワーク内の別のマシン、Apache+PHPにWebサーバーがあります。

phpスクリプトを介してストレージ上のこれらのファイルにアクセスする必要があります。

私は次のことを試しました:

$ data = file_get_contents( "\\ SomeServer \ SomeFolder \ test.txt");

私は得た

Warning: file_get_contents(\\SomeServer\SomeFolder\test.txt) [function.file-get-contents]: failed to open stream: Invalid argument

変更を加えずに、ストレージフォルダーにアクセスできるログイン認証を使用してApacheを実行しようとしました。

何か助けはありますか?

4

1 に答える 1

1

ドライブアクセスをマッピングせずにファイルを直接読み取ることはできません。

サーバーシステムにLINUX環境がある場合は、サーバーシステムにドライブをマウントし、ドライブ文字名を指定してから、データへのアクセスを試みる必要があります。

ネットワークファイルにアクセスするためのWindows認証の場合、HTTPサーバーは正しい特権を持っていない可能性があるため、拒否されたアクセス許可を返します。

これはあなたが試すことができるものです:

  • Windowsエクスプローラーでファイルにアクセスしてみてください。ユーザー名とパスワードの入力を求められる場合は、認証に問題がある可能性があります。すべての制限を削除して、機能するかどうかを確認してください。次に、アクセスされているディレクトリに対する完全な権限を* apacheサービスに付与します

  • バックスラッシュをスラッシュに置き換えます

  • ディレクトリ名にスペースが含まれていないことを確認してください

  • リンクを読むhttp://bugs.php.net/bug.php?id=25805

  • ネットワークリソースをドライブ名にマップします。https://www.microsoft.com/windowsxp/using/networking/maintain/mapdrive.mspxを参照してください。

注:提供される共有ドライブ/フォルダーは書き込みを書き込む必要があります。デフォルトでは、読み取り権限のみが提供されます。

*設定Apacheサービスの完全な権利

上記のことを行ったと思いますが、Apacheサーバーへのフルアクセス権を提供していません。次の手順を実行して、Apacheサーバーへのフルアクセスを提供してください。

グローバルディレクトリ

httpd.confでの設定

Webistevhosts

httpd-vhosts.conf

Options Indexes FollowSymLinks Includes ExecCGI

デフォルトでは、グローバルディレクトリ設定は次のとおりです。

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

オプションを次のように設定します。オプションインデックスFollowSymLinksにはExecCGIが含まれます

最後に、次のようになります。

<Directory />
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order deny,allow
   Allow from all
</Directory>
于 2013-03-04T07:07:14.630 に答える