接続されたネットワークドライブ/NASに書き込むスクリプトを取得するのに問題があります。奇妙なことに、同じWebサーバーで、サーバー上の既存のスクリプトから同じディレクトリへの読み取り/書き込みに問題はありません。私はWindows/IIS Webサーバーに精通していないので、できるだけ多くのものをリストするようにします。
まず、簡単なテストスクリプトを使用して、is_dirとis_writeableを実行します。作業スクリプトのものと同じ$dir変数を使用します。
次に例を示します。
$aftn_path = "\\\\skynas01\\shared_files\\";
if(is_dir($aftn_path)) echo "$aftn_path is a directory."; else echo "$aftn_path is not a directory";
返されるものは次のとおりです。
\\ skynas01 \shared_files\はディレクトリではありません
ディレクトリ文字列をコピーして実行コマンドに貼り付けると、ディレクトリが正常に開きます。そのディレクトリのアクセス許可を確認したところ、「全員」がそのディレクトリから読み取り/書き込み/実行できることがわかりました。繰り返しになりますが、fopen()呼び出しを使用したまったく同じディレクトリ文字列を持つ別のスクリプトは問題なく動作し、そこにファイルを書き込むことができます。
私が考えることができる他の唯一のことは、IISサーバーがヘリコンISAPI Rewriteモジュールを使用し、動作するスクリプトにそのPHPファイルを指すルールがあることです(私も理解していません)
これがISAPI書き換えルールです
RewriteRule /sys/filing(.*) /phpsys/filing.php [I,L]
私には、/ sys->/phpsysのエイリアシングのように見えます。
\ skynas01ネットワークマウントはサーバー上の内部ドライブにマップされており、ドライブ文字(G:/ shared_files)からもアクセスできません。また、スラッシュ(// skynas01 / shared_files)を使用してみました。私のスクリプトがこのディレクトリを見ることができない理由を誰かが知っていますか?