我会直接切入它。我的任务计划程序没有使用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
任何英雄可以拯救这一天吗?
由于
答案 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
希望这有助于遇到类似问题的人。
尼克。