【问题标题】:PHP exec won't work - no output producedPHP exec 不起作用 - 没有产生输出
【发布时间】:2013-06-12 15:54:58
【问题描述】:

我有一个通过 exec 调用命令行实用程序的 PHP 脚本。它在我(基于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 命令不会产生任何输出,就像我的真实脚本中的情况一样。

这种行为的原因是什么?或者到哪里寻找更多信息?

【问题讨论】:

  • 您的测试机器是基于 linux 的机器吗?还是窗户?
  • 开发环境和测试/生产机器都是基于linux的。我更新了问题以反映这一点。

标签: php exec


【解决方案1】:

默认情况下,许多 Web 服务器会禁用一些 PHP 功能(有些也不允许您修改这些默认值)。如果你有一个不错的网络服务器,你应该能够编辑 php.ini 文件。寻找如下内容的行:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多