2015-04-15 26 views
0

我有一个Laravel 5应用程序,我想运行cronjobs,我创建了一个命令,每5分钟运行一次。Laravel调度程序不工作

但由于某种原因,它从来没有被称为。

我已添加以下crontab。

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

我检查cron的日志文件,它看起来像it's运行:

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

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

[[email protected] /]# 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日志中没有记录条目。

(我知道我运行的cronjob为根,但是这是为了避免错误的权限做测试)

Laravel版本:5.0.27
服务器:CentOS 6的

我失去了什么?

回答

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版本上运行。

3

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

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

希望这有助于