我希望通过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)中都能正常工作。
答案 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
请玩得开心