php exec()命令无法在服务器上运行php脚本

时间:2019-01-18 12:45:54

标签: php server

我在按下网站上的按钮后执行的php脚本中具有以下命令:

exec('nohup php /var/www/website.org.uk/myScript.php >> /var/www/website.org.uk/shared/storage/logs/myLog.log 2>&1 & echo $! > /var/www/website.org.uk/pid.txt');

理想情况下,它应该在我的服务器上执行myScript.php,将脚本的所有输出发送到myLog.log,并将myScript.php进程的pid存储到pid.txt

myScript.php:

<?php
print "\nStarting dummy script\n";
sleep(10); // Sleep for 10 seconds.
print "\nFinished dummy script\n";

如果我进入服务器并手动运行命令,则一切正常。但是,从网站运行时,会将pid写入pid.txt文件,但是php脚本立即失败。什么都没写到日志中,使用ps命令时,我看不到服务器上正在运行的进程(由于sleep命令,我应该看到它至少运行了10秒钟)。

在阅读了先前的堆栈溢出文章之后,我将所有三个文件的权限更改为-rwxr-x---,并将该组更新为www-data,但这没有任何区别。

我在这里还想念其他东西吗?

0 个答案:

没有答案
相关问题