我有一个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
我缺少什么?
答案 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版本运行了。