为什么我不能在IIS中的网络共享上使用PHP脚本中的shell_exec?

时间:2010-03-19 05:51:44

标签: php apache iis permissions windows-server-2003

我有一些驻留在网络共享上的PHP脚本。为了论证,让我们调用共享\\nas\dev。我在IIS6中设置了\\w2k3dev\网站,通过设置“位于另一台计算机上的A共享”,使用\\nas\dev\作为其主目录。

我的一些脚本使用shell_exec来执行服务器上的函数并将结果返回给我的脚本。再次为了论证,让我说我只是得到一个像这样的目录列表:

echo shell_exec('dir');

  • 如果我在 IIS 中运行脚本,我没有输出 - 但也没有错误日志。
  • 如果我在\\w2k3dev\上设置 Apache 并将其配置为使用相同的共享,则脚本运行良好
  • 如果我将脚本复制到本地计算机并通过IIS运行它可以正常工作。

所以问题似乎只是当IIS设置为使用包含shell_exec的脚本的网络共享时。我的脚本的每个其他方面都可以正常工作。

在procmon中进行分析,我可以看到cmd.exe的操作完全不同,具体取决于它是由IIS还是Apache运行。我有更多细节,但为了简明扼要,我将暂时省略它们,除非有人要求提供更多细节。

非常感谢你看到这一点,我在我的智慧结束。

亲切的问候

伊恩