PHP exec()工作不正常,但在SSH IronWorker中工作

PHP exec()工作不正常,但在SSH IronWorker中工作,php,ruby,debian,exec,iron.io,Php,Ruby,Debian,Exec,Iron.io,我对php exec()命令有一个奇怪的问题 我正试着经营一家专门的珠宝店,名为钢铁工人 exec('iron_worker upload Renode 2>&1',$output,$error); var_dump($output); 这是我试图运行的命令,但不幸的是,它没有将代码上传到服务,它只显示 ------> Creating client 相反,当我使用SSH运行命令时,它工作正常,找到文件并上传代码 如果我进行打印(输出); 有什么问题吗?php ex

我对php exec()命令有一个奇怪的问题

我正试着经营一家专门的珠宝店,名为钢铁工人

exec('iron_worker upload Renode 2>&1',$output,$error);
var_dump($output); 
这是我试图运行的命令,但不幸的是,它没有将代码上传到服务,它只显示

 ------> Creating client
相反,当我使用SSH运行命令时,它工作正常,找到文件并上传代码

如果我进行打印(输出);

有什么问题吗?php exec命令只在指定的时间停止,不会继续


谢谢大家!

这个程序似乎需要一个主目录来运行。您必须将其添加到sudoers文件(其中http是web服务器,foo是机器上的用户):

哦,我忘了系统的部分了


我建议把程序放在/home/foo/中。我希望这对您有用:)

通过对iron_worker源代码的分析,它看起来使用了HOME变量环境,并且在未设置HOME env变量的情况下处于阻塞状态


我建议您使用
putenv(“HOME=/HOME/my_user/”)设置变量在通过PHP运行脚本之前。

它确实解决了我的问题!添加putenv后,我的代码出现了工作问题。非常感谢。
http ALL=(foo) NOPASSWD: /path/to/program/or/script
system("sudo -u foo /path/to/program/or/script");