我在将脚本写入连接的网络驱动器/NAS时遇到问题。奇怪的是,同一个Web服务器从服务器上的现有脚本读取/写入同一目录没有问题。我对Windows/IIIS 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服务器使用helicon ISAPI Rewrite模块,并且运行的脚本确实有一条指向该PHP文件的规则(我也不理解)
以下是ISAPI重写规则
RewriteRule /sys/filing(.*) /phpsys/filing.php [I,L]
对我来说,它看起来只是别名/sys->/phpsys。
\skynas01网络装载映射到服务器上的内部驱动器,驱动器号也无法访问(G:/shared_files)。我还尝试过使用斜杠(//skynas01/shared_files)。有人知道为什么我的脚本看不到这个目录吗?
这肯定不是ISAPI_Rewrite。您可以通过从配置文件中删除规则进行检查,并请求您需要的东西。它仍然会抛出错误。