Crontab没有运行Laravel预定作业

时间:2018-01-26 12:07:19

标签: php laravel amazon-ec2 cron

我在我的AWS-EC2实例上设置了crontab,使用sudo crontab-e通过root帐户每分钟点击一次Laravel调度端点:

* * * * * php ~/htdocs/artisan schedule:run >> /dev/null 2>&1

然而,尽管cron日志显示它确实每分钟都在运行:

Jan 26 12:02:01 ip-172-31-28-116 CRON[5057]: (root) CMD (php ~/htdocs/artisan schedule:run >> /dev/null 2>&1)

作业本身没有执行。

直接运行命令php ~/htdocs/artisan schedule:run >> /dev/null 2>&1会触发作业并运行。

我真的在这里遇到什么问题,我错过了什么?

2 个答案:

答案 0 :(得分:2)

添加cron条目时使用绝对路径。应使用应用程序根目录的完整路径设置~/htdocs/artisan

当您手动运行命令时,它会起作用,因为您的环境是相应设置的。使用sudo添加cron条目时不是这样。

答案 1 :(得分:1)

所以,我没有注意到cron输出“没有安装MTA,丢弃输出” - 安装MTA(后缀,通过sudo apt-get install postfix)后,发现对于cronjob,php没有找不到。

更改命令以使用which php的输出:

/opt/bitnami/php/bin/php /home/bitnami/htdocs/artisan schedule:run

现在正在运作。

感谢您的帮助!