【问题标题】:Issues reading/writing to NAS from IIS 6.0 and PHP从 IIS 6.0 和 PHP 读取/写入 NAS 的问题
【发布时间】:2012-08-20 20:32:20
【问题描述】:

我无法将脚本写入连接的网络驱动器/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 重写模块,并且有效的脚本确实有一个指向该 PHP 文件的规则(我也不明白)

这是 ISAPI 重写规则

  RewriteRule /sys/filing(.*)   /phpsys/filing.php [I,L]

对我来说,它看起来只是别名 /sys -> /phpsys。

\skynas01 网络挂载映射到服务器上的内部驱动器,驱动器号也无法访问 (G:/shared_files)。我也尝试过使用正斜杠(//skynas01/shared_files)。有谁知道为什么我的脚本看不到这个目录?

【问题讨论】:

    标签: php iis permissions fopen isapi-rewrite


    【解决方案1】:

    这绝对不是 ISAPI_Rewrite。您可以通过从配置文件中删除规则来检查并请求您需要的东西。它仍然会抛出错误。

    【讨论】:

    • 那是正确的。经过进一步调查,能够写入 NAS 的 PHP 脚本被视为特定用户,而我的脚本被视为默认 IIS 用户 (IUSR_$SERVERNAME),因此这绝对是一个权限问题。我想弄清楚这个脚本是如何改变它的身份的。
    猜你喜欢
    • 2011-10-12
    • 1970-01-01
    • 2023-04-01
    • 2020-01-11
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多