【问题标题】:Laravel artisan cron task not working on ubuntuLaravel artisan cron 任务无法在 ubuntu 上运行
【发布时间】: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


【解决方案1】:

我经历过这个并找到了解决方案。这是由于bitnami中的未知原因,因此cron无法识别php命令。我使用此命令使其工作:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-01-10
  • 2020-07-05
  • 2020-05-16
  • 2021-11-07
  • 2017-11-02
  • 1970-01-01
相关资源
最近更新 更多