PHP exec不起作用 - 没有产生输出

时间:2013-06-12 15:54:58

标签: php exec

我有一个PHP脚本,通过exec调用命令行实用程序。它在我的(基于Xubuntu linux的)开发机器上工作正常,但不适用于生产服务器上的基于CentOS linux的测试环境。

为了隔离错误,我创建了以下测试脚本:

<?php

  $command = "echo test";
  $output = array();
  exec($command, $output);

  foreach ($output as $line)
  {
    echo "new line: " . $line . "\n";
  }

  echo "done";
?>

当我通过php test.php运行时,我得到以下输出。

done

即。似乎exec命令不会产生任何输出,就像在我的真实脚本中一样。

此行为的原因是什么或在何处寻找更多信息?

1 个答案:

答案 0 :(得分:1)

许多Web服务器默认会禁用某些PHP函数(有些也不允许您修改这些默认值)。如果你有一个体面的网络服务器,你应该能够编辑php.ini文件。寻找一条如下所示的行:

disable_functions =exec,passthru,shell_exec [ etc... ]

如果您看到,请从列表中删除exec并重新启动您的Web服务。