exec()不会播放(Apache上的PHP)

时间:2012-06-27 18:30:07

标签: php apache shell

我的exec()命令停止工作。我从Dreamhost Apache服务器上的PHP脚本调用exec()。

以下是测试脚本:

$disabled = explode(', ', ini_get('disable_functions'));
if (in_array('exec', $disabled)) 
    echo 'exec is in array of disabled functions';
else
    echo 'exec is NOT in array of disabled functions';
echo '</br> exec(ls): </br>';
$command = 'ls';
exec($command,$output,$returnvar);
echo '</br> output is: </br>';
var_dump($output);
echo '</br> return var is: </br>';
var_dump($returnvar);

输出结果为:

exec is NOT in array of disabled functions
exec(ls):

output is:

array
  empty


return var is:

int 1

恕我直言,这告诉我在我的系统上启用了exec()。 $ return_var设置为1,Google向我保证这表示“小问题”。

这可能是什么问题?为什么exec()不起作用?

2 个答案:

答案 0 :(得分:0)

更可能是路径问题,尝试使用绝对路径

  

$ command ='/ path / to / ls'; //我认为它是/ bin / ls

如果找不到命令,通常会得到空的结果(你必须以不同的方式捕获错误输出)

答案 1 :(得分:0)

这可能是路径问题,或者应用无法访问您尝试访问的命令。

2>&1添加到exec命令的末尾,看看输出是什么。这很可能会让你看到阻止命令执行的内容。 2>&1告诉操作系统将STDERR发送到STDOUT。

例如,而不是

exec('ls');

尝试

exec('ls 2>&1');