我有一个PHP脚本,我需要每分钟运行一次.我确保脚本在命令行中运行,并且我使用绝对路径来避免任何环境问题:
/usr/bin/php -q /var/www/myapp/services/myservice.php
从命令行以root身份手动运行它可以正常工作,我可以从我的脚本写入的日志文件中看到.可以肯定的是,该脚本也具有执行权限.
但是,在cron中放置相同的命令时:
* * * * * /usr/bin/php -q /var/www/myapp/services/myservice.php
它没有运行或者至少它看起来如此.我也尝试过将输出重定向到另一个日志文件:
* * * * * /usr/bin/php -q /var/www/myapp/services/myservice.php >> /mylog.log 2>&1
依然没有.我没有任何迹象表明正在运行的脚本.我想它没有,但我不知道还有什么要寻找的.我甚至重新启动了cron守护进程.
我知道StackOverflow上有类似的问题,但没有一个答案对我来说是一个解决方案.这实际上让我发疯,我将非常感谢任何帮助.
解决方法:
我找到了解决问题的方法:
事实证明我需要cd(更改目录)到脚本目录然后调用它.令人惊讶的是,因为我使用绝对路径,但它有效.感谢那些花时间回应的人.
标签:php,cron,command-line
来源: https://codeday.me/bug/20190927/1824527.html