在过去的 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