Laravel调度程序无法正常工作

时间:2015-04-15 08:28:06

标签: php cron laravel-5 scheduler

我有一个Laravel 5应用程序,我想运行cronjobs,我已经创建了一个命令,它将每5分钟运行一次。

但由于某种原因,它从未被召唤过。

我添加了以下crontab。

*   *   *   *   *   php /var/www/vhosts/website.com/httpdocs/artisan schedule:run

我检查了cron日志文件,看起来它正在运行:

Apr 15 10:19:01 lvps92-51-xx-xx CROND[15420]: (root) CMD (php /var/www/vhosts/website.com/httpdocs/artisan schedule:run)

但它永远不会调用命令。 有趣的是,如果我手动运行命令它的工作......

[root@lvps92-51-xx-xx /]# php /var/www/vhosts/website.com/httpdocs/artisan schedule:run    
Running scheduled command: (touch /var/www/vhosts/website.com/httpdocs/storage/framework/schedule-c56ad4a76ba9d8e31def649e20c42f73; /usr/local/php566-cgi/bin/php artisan test:run; 
rm /var/www/vhosts/website.com/httpdocs/storage/framework/schedule-c56ad4a76ba9d8e31def649e20c42f73) > /dev/null 2>&1 &

Laravel Log中没有记录条目。

(我知道我以root身份运行cronjob,但这是为了避免执行测试时出现权限错误)

Laravel版本:5.0.27
服务器:Centos 6

我缺少什么?

2 个答案:

答案 0 :(得分:3)

前几天我也遇到过这个问题,这就是我解决它的方法。 我实际上使用hostmonster来托管我的应用程序。 我的cron工作每分钟运行一次。

*   *   *   *   *   /usr/local/bin/php path/to/artisan schedule:run 1>> /dev/null 2>&1

希望这有帮助

答案 1 :(得分:2)

发现出了什么问题,我安装了超过1个PHP版本,并且出于某种原因,即使我已经将新的PHP路径添加到.bash_profile,cron仍在使用默认的php安装。

我通过添加正确的PHP版本路径来修复它:

*   *   *   *   *   /usr/local/php566-cgi/bin/php /var/www/vhosts/website.com/httpdocs/artisan schedule:run 1>> /dev/null 2>&1 

这样就被迫用PHP版本运行了。