【问题标题】:php shell_exec return nullphp shell_exec 返回空值
【发布时间】:2016-04-10 06:57:06
【问题描述】:

我想通过 php 运行 php ../cat1/index.php gr_s2/3/gr-n40 1200 命令。 shell_exec 返回 NULL 作为结果,但是当我在 cmd 上尝试该命令时,输出显示正确。

php 和 shell_exec 发生了什么?!

注意:具有不同参数的命令(如:php ../cat1/index.php gr_s2/3/gr-n40 800)在(php 和 cmd)中都可以正常工作。

【问题讨论】:

  • 可以加2>&1和行尾再检查一下吗?
  • 亲爱的@sergio,Nup!没用!

标签: php cmd command shell-exec


【解决方案1】:

通过将 web-server 使用的用户添加到 sudoer 并使用

运行 php 命令来解决此问题
sudo php ..........

要开始运行这个命令sudo visudo

在打开的 sudoer 文件末尾添加以下行

www-data ALL=NOPASSWD: /usr/bin/php

但是如果你想从 php 中执行所有的命令,请添加这一行而不是上面不推荐的 www-data ALL=NOPASSWD: ALL

然后使用 sudo php /path/to/you/file.php 运行您的命令

就我而言,我运行的是 ubuntu 14.04

请玩得开心

【讨论】:

  • 我在执行外部 exe 时遇到了同样的问题。 Windows 没有 sudo 命令
【解决方案2】:

shell_execute的php手册页中有一个note

注意:此函数可以在发生错误时返回 NULL 或 程序不产生任何输出。无法检测到执行 使用此功能失败。 exec() 应该在访问时使用 程序退出代码是必需的。

来源:http://php.net/manual/en/function.shell-exec.php

所以您的代码运行时出错。尝试使用 exec。 如果需要,请插入要检查的代码(或块)。

【讨论】:

  • 亲爱的@shozdeh,我尝试使用 exec() 方法得到了相同的结果......!代码没有错误。
  • @MasoudNazari 检查运行时间限制或未达到内存限制?!
猜你喜欢
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多