【问题标题】:PHP shell_exec from a script doesn't seem to work脚本中的 PHP shell_exec 似乎不起作用
【发布时间】:2017-02-18 04:21:26
【问题描述】:

我正在使用需要在后台运行 PHP 的 PHP。我正在使用 shell_exec 来执行此操作并传递正确运行所需的参数。

例子:

shell_exec('php /home/nobounces/crons/process3.php ' . $_SESSION['user_id'] . ' ' . $job['job_id'] . '  >/dev/null 2>&1');

但是,当从用户“nobounces”下的 PHP 脚本运行时,它根本不会运行。

我以 root 身份通过 SSH 测试了完全相同的调用,它运行顺利。

我在通话中遗漏了什么吗?

">/dev/null 2>&1" 用于避免等待响应,因为脚本可能需要数小时才能完成。

【问题讨论】:

  • 该帐户很可能在其 PATH 环境变量中没有 php 可执行文件。尝试使用 php 解释器的绝对路径,可能是 /usr/bin/php
  • 在控制台输入php会发生什么?它会起作用吗?如果没有,设置路径 1st
  • 尝试在 cPanel 安装中找到 PHP 的路径,已经尝试使用 /usr/bin/php 但它似乎不存在导致它仍然无法工作。
  • 找到它:/usr/local/cpanel/3rdparty/bin/php /home/nobounces/crons/process3.php ' . $_SESSION['user_id'] . ' ' . $job['job_id'] . ' >/dev/null 2>&1 但现在脚本正在等待输出...

标签: php shell ssh


【解决方案1】:

在 cpanel 服务器上运行时,解决方案是使用:

shell_exec('/usr/local/cpanel/3rdparty/bin/php /home/nobounces/crons/process3.php ' . $_SESSION['user_id'] . ' ' . $job['job_id'] . ' >/dev/null 2>&1 &');

你也可以通过路径使用 PHP-CGI:

/usr/local/cpanel/3rdparty/bin/php-cgi

感谢@arkascha 的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-29
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多