【问题标题】:Running shell command using shell_exec使用 shell_exec 运行 shell 命令
【发布时间】:2014-10-05 14:15:10
【问题描述】:

我正在使用 ajax 调用在服务器 (centos) 上执行“shell_exec”。 我正在执行的行如下

echo shell_exec("php -q /websockets/timedactions.php");

这是服务器响应:

X-Powered-By: PHP/5.5.16
Access-Control-Allow-Origin: http://myIpAddress
Access-Control-Allow-Credentials: true
Content-type: text/html

0

运行此命令后,它应该激活的进程似乎没有运行。

以 root 访问权限在 shell 上调用相同的命令

php -q /websockets/timedactions.php

完美运行。

如何使用 shell_exec 使脚本工作?

【问题讨论】:

  • php 二进制文件可能不在路径中,尝试使用完整路径名,如shell_exec("/path/to/bin/php ...")

标签: php linux centos shell-exec


【解决方案1】:

执行命令时可能会出现错误。你可以将STDERR重定向到STDOUT,看看有没有like this(Sample 3.5)
echo shell_exec("php -q /websockets/timedactions.php 2>&1");

也可能有一些东西阻止shell_exec 打印 (link)。

【讨论】: