Laravel工匠cron任务不在ubuntu上工作


Laravel artisan cron task not working on ubuntu

在过去的 5 个小时里,我一直在拔头发,我认为这是一项简单的任务,为 Larawel 启用 cron 功能。我在 Amazon EC2 Ubuntu LAPP 堆栈服务器上运行 Laravel 5.1。

我已使用命令将 cron 任务添加到 cron 作业列表中

sudo crontab -e

然后我添加了 laravel 文档中列出的命令

* * * * * php /home/bitnami/htdocs/project/app/artisan schedule:run >> /dev/null 2>&1

我已经确保 cron 正在运行,如果我运行,我可以看到任务正在运行

sudo grep -i cron /var/log/syslog|tail -3

哪个返回

Mar  4 15:36:01 ip-172-31-7-174 CRON[15120]: (root) CMD (php /home/bitnami/htdocs/project/app/artisan schedule:run >> /dev/null 2>&1)
Mar  4 15:37:01 ip-172-31-7-174 CRON[15123]: (root) CMD (php /home/bitnami/htdocs/project/app/artisan schedule:run >> /dev/null 2>&1)
Mar  4 15:38:01 ip-172-31-7-174 CRON[15125]: (root) CMD (php /home/bitnami/htdocs/project/app/artisan schedule:run >> /dev/null 2>&1)

我已经通过从命令行运行命令测试了该路径中没有任何拼写错误,并且它工作正常

php /home/bitnami/htdocs/project/app/artisan schedule:run

此外,我添加了这个 cron 任务只是为了确认 cron 实际上正在运行

* * * * * echo "Cron" > /home/bitnami/htdocs/project/app/artisan/file.txt

我还通过执行以下操作确保该文件是可执行的,但这也没有解决问题

chmod 755 artisan
chmod 777 artisan (I am aware this is dangerous)
chmod +x artisan (Suggested on fourms)

有没有人对我在这里出错的地方有任何建议。

我经历过这种情况并找到了解决方案。正是因为 bitnami 中未知的原因,所以 php 命令无法被 cron 识别。我使用此命令使其工作:

* * * * * /path/to/php/bin/php /home/bitnami/htdocs/project/app/artisan schedule:run 1>> /dev/null 2>&1