任务计划程序Laravel 5.4 cron不会自动运行Mac OSx

时间:2017-11-23 10:13:05

标签: macos laravel laravel-5 cron laravel-5.4

我会直接切入它。我的任务计划程序没有使用cron作业自动运行,只有在我运行时才有效:

php artisan schedule:run

我在handle()函数中所做的只是:

\Log::info('scheduler running @' . \Carbon\Carbon::now() );

这运行完美并在命令运行时记录,所以我知道我的artisan命令没有任何问题,但是cron作业本身,或者我本地主机配置中的内容。

我为crontab条目尝试了两种方法。

* * * * * php Sites/projectname/artisan schedule:run >> /dev/null 2>&1

* * * * * cd Sites/projectname; php artisan schedule:run >> /dev/null 2>&1

两者都没有工作,我应该每分钟都得到一个日志,就像app/Kernel.php函数schedule()中我有这段代码一样。 $schedule->command('send:email')->everyMinute();

我尝试使用php artisan cache:clear清除Laravel缓存我尝试重新启动Laravel服务器并使用sudo apachectl restart

重新启动了我的Apache服务器

任何英雄可以拯救这一天吗?

由于

1 个答案:

答案 0 :(得分:0)

<强>解决

@MortaddaJafar为我排序了这个问题所以归功于他。

基本上我的Laravel php版本是5.6.4而我的apache php服务器版本是5.6.30所以这样做会导致兼容性问题,因为我的PHP版本不支持splat运算符。将-q放入我的cron php -q允许我调试问题,因为错误消息会发送到/var/mail/nick

要解决此问题,只需将直接路径应用到您的php版本即可运行cron,这可以避免版本问题。运行which php以获取路径,然后将其添加到您的cron中。

* * * * * cd Sites/projectname; /usr/local/bin/php -q artisan schedule:run >> /dev/null 2>&1

希望这有助于遇到类似问题的人。

尼克。