PHP命令在shell命令中执行异步php脚本在bitnami LAMP AWS上不起作用

on my local machine I execute the following:

exec('sudo nohup '.PHP_BINDIR.'/php '.ROOT.'/index.php controller=imports action=import id=12 > /dev/null 2>&1 &');

where "ROOT" is a constant with the complete path.

Everything works fine and the script is executed asyncronously with no problems.

When I run the same script on production environment (a bitnami LAMP stack running on AWS) instead: if I run it directly from the terminal it works, when I run it from php it doesn't.

I have nothing in the apache error_log and if I run it with shell_exec the returned value is NULL.

If I try to execute a different script from php (like exec('whoami')) it works, so I don't think is a permissions thing.

I also tried replacing php command with php-cli, nothing changes.

Hope someone can help.

Thanks in advance.

doucheng8471
doucheng8471 两个问题:1)如果我用sudo运行它它会问我守护进程用户密码,正如我所说我没有(并且它既不是空的也不是*)2)如果我运行它而没有找到mylog.txtbash:/opt/bitnami/lampstack-linux-x64/output/php/bin/php:没有这样的文件或目录它是真的,它不是一个目录,我不知道为什么它告诉它在那里,我检索那条路径PHP_BINDIR常量
6 年多之前 回复
duanpai6581
duanpai6581 你在运行sudonohup/path/to/php...还是只是php...?
6 年多之前 回复
dongpu9481
dongpu9481 作为root用户安装它,现在在mylog.txt中我发现“PHP致命错误:类'mysqli'在.....blabla中找不到”,但是怎么可能???
6 年多之前 回复
doulaozhi6835
doulaozhi6835 我发现打印的内容“程序'php'目前尚未安装。要运行'php',请让管理员安装软件包'php5-cli'”。但是如果我尝试使用apt-get安装,我会被提示插入用户(守护进程)密码,我不知道(并且它不是空的而且它不是*)。
6 年多之前 回复
duanfengshang1088
duanfengshang1088 运行您发布的命令,但使用mylog.txt而不是/dev/null,然后查看mylog.txt以查看错误是什么
6 年多之前 回复
doupo2241
doupo2241 如果我直接运行php命令(没有nohup)我得到“程序'php'目前尚未安装。要运行'php',请让管理员安装包'php5-cli'”...我认为这是错误!
6 年多之前 回复
dqb78642
dqb78642 嗨,谢谢你的回答。如果我按照你的建议在这个新shell中运行它实际上不起作用!但我没有得到任何错误,它似乎只是“被卡住了”。因为如果我在一段时间后运行相同的命令,则先前的命令会导致“已停止”。有什么建议?
6 年多之前 回复
dongyao1895
dongyao1895 对于调试,请尝试运行sudo-uwww-dataenv-ibash以获取作为www-data运行的全新shell(如果您的php脚本以不同的用户身份运行,则替换)。在这个新的shell中尝试你的sudo命令,看看它是否仍然有效。
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问