2011-03-14 70 views
3

我正在运行一个SCO Unix框与Apache版本1.3.33和PHP版本4.4。我可以通过cli正确执行exec命令,但遇到试图通过浏览器执行脚本的麻烦。我的设置是:PHP的exec/shell_exec /系统不通过浏览器工作

  • 关闭安全模式
  • 完全读/写/ EXEC权限
  • 显示所有错误
  • 没有禁用的功能

我的代码:test_script.php中的htdocs目录

<?php 
exec('ls',$out,$rval); 
echo "Output:<hr />"; 
print "<pre>"; print_r($out); print "</pre>"; 
echo "Return Value:<hr />"; 
echo $rval; 
?> 

我试过设置e可执行的二进制路径也是显式的。测试脚本与apache是​​相同的用户/组。我也尝试将2> & 1添加到arg,但是看不到变化。先谢谢你。

here for similar.

+1

你试过'/ bin/ls'吗? – mario 2011-03-14 23:34:36

+1

你的脚本的输出是什么? – AbiusX 2011-03-14 23:40:12

+0

@mario,是的我已经尝试明确设置路径。 – btl 2011-03-14 23:42:12

回答

6

尝试

$output = shell_exec('ls /tmp/ 2>&1') 

你可能会具有权限的问题,对于当前目录运行网页的用户。

您还可以尝试whoami命令。

0

有时这些功能被禁用,你必须在php.ini中启用它们