【发布时间】:2014-09-24 21:43:38
【问题描述】:
在 IIS 中运行此代码时,我无法访问/读取位于网络共享文件夹中的文件。有问题的文件夹设置为允许所有用户。 但是,如果我通过命令提示符运行 php 脚本,它可以正常工作。 通过命令提示符执行 shell_exec('whoami') 会产生正确的用户,但是通过浏览器返回为空。
这绝对与设置适当的权限或使用正确的用户设置服务器或类似的东西有关。我对服务器了解不多,因此非常感谢任何有关如何解决此问题的帮助或任何会产生任何线索的实验。
下面是非常简单的代码(同样是IIS 2003 server PHP 5.2)
<?php
$theFile="\\\\192.168.0.16\\geo\\junk.txt"; #network file does not works
#$theFile="junk.txt"; #local file works fine
$handle = fopen($theFile, "r");
if($handle){
while (!feof($handle)){
$buffer = fgets($handle);
echo $buffer."<br />";
}
}
?>
【问题讨论】:
-
你确定它是“空的”吗? shell_exec 返回一个 PHP
null错误或没有从 exec 程序输出。 -
好吧,它根本不会返回任何可见的东西。所以,如果我做 echo "-->".shell_exec('whoami')."tzhan_admin
-
你试过用 exec 代替 shell_exec
-
var_dump(shell_exec(...))更好。它还会为您提供类型/尺寸信息。 -
我明天不试了。还有什么可以帮助我调试这个问题的吗?