我无法让脚本写入连接的网络驱动器/NAS。奇怪的是,同一个网络服务器从服务器上的现有脚本读取/写入同一目录没有问题。我不擅长使用 Windows/IIS 网络服务器,所以我会尽量列出尽可能多的东西。
首先,我使用一个简单的测试脚本来执行 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 服务器使用 helicon ISAPI Rewrite 模块,并且有效的脚本确实有一个指向该 PHP 文件的规则(我也不明白)
这是 ISAPI 重写规则
RewriteRule /sys/filing(.*) /phpsys/filing.php [I,L]
对我来说,它看起来只是别名 /sys -> /phpsys。
\skynas01 网络挂载映射到服务器上的内部驱动器,也不能通过驱动器号访问 (G:/shared_files)。我也尝试过使用正斜杠(//skynas01/shared_files)。有谁知道为什么我的脚本看不到这个目录?