php shell_exec return 空

php shell_exec return null

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

php 和 shell_exec 发生了什么?!

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

[=]的php手册页中有一个注释 28=]:

Note: This function can return NULL both when an error occurs or the program produces no output. It is not possible to detect execution failures using this function. exec() should be used when access to the program exit code is required.

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

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

这是通过将网络服务器使用的用户添加到 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

我的情况是 运行ning ubuntu 14.04

请玩得开心