【发布时间】:2016-06-18 10:26:31
【问题描述】:
在过去的 5 个小时里,我一直在努力完成一项我认为很简单的任务,即为 Laravel 启用 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)
有没有人对我在这里出错的地方有任何建议。
【问题讨论】:
-
您正在以 root 用户身份运行您的 cron。您是否测试过您的命令是否以 root 身份成功执行? sudo php /home/bitnami/htdocs/project/app/artisan schedule:run 还将该 cron 的输出发送到文件而不是 nirvana 会有所帮助;) * * * * * php /home/bitnami/htdocs/project/app /artisan schedule:run >> /my.log
-
当您从命令行运行命令时,您是以
sudo运行它吗?因为您的sudo crontab -e意味着那里的命令将由root 运行。 -
另外,你计划在你的 laravel 应用程序中运行什么?
-
@Pitchinnate 大量数据库插入,我还添加了一个具有 \Log::info('Cron'); 的任务只是为了确保它不是数据库问题。我也知道 sudo crontab -e.
标签: php laravel ubuntu amazon-ec2 cron