我正在运行带有 apache 1.3.33 版和 PHP 4.4 版的 SCO Unix 机器。我可以通过 cli 正确执行 exec 命令,但在尝试通过浏览器执行脚本时遇到了麻烦。我的设置是:
- 关闭安全模式
- 完整的读/写/执行权限
- 显示所有错误
- 没有禁用的功能
我的代码:htdocs 目录中的 test_script.php
<?php
exec('ls',$out,$rval);
echo "Output:<hr />";
print "<pre>"; print_r($out); print "</pre>";
echo "Return Value:<hr />";
echo $rval;
?>
我也试过显式设置可执行文件的二进制路径。测试脚本是与 apache 相同的用户/组。我也尝试将 2>&1 添加到 arg,但没有看到任何变化。提前谢谢你。
最佳答案
尝试
$output = shell_exec('ls /tmp/ 2>&1')
您可能遇到运行网页的用户对当前目录的权限问题。
您也可以尝试使用 whoami
命令。
关于PHP exec/shell_exec/system 无法通过浏览器工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305849/