php shell_exec返回null

时间:2016-01-06 08:45:05

标签: php cmd command shell-exec

我希望通过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 个答案:

答案 0 :(得分:2)

shell_execute 的php手册页中有 注意

  

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

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

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

答案 1 :(得分:0)

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

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

开始运行此命令sudo visudo

在sudoer文件打开结束时添加以下行

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

但如果您想从php执行所有commad,请添加此行而不是上面提到的www-data ALL=NOPASSWD: ALL

并使用sudo php /path/to/you/file.php

运行您的命令

对于我的情况,我正在运行ubuntu 14.04

请玩得开心