У меня есть приложение 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 нет записей журнала.
(Я знаю, что я запускаю cronjob от имени пользователя root, но это было во избежание ошибок разрешений при выполнении тестирования)
Laravel версия: 5.0.27
Сервер: Centos 6
Что мне не хватает?
У меня тоже была эта проблема несколько дней назад, и вот как я ее решил.
Я на самом деле использую hostmonster для размещения моего приложения.
Моя работа cron выполняется каждую минуту.
* * * * * /usr/local/bin/php path/to/artisan schedule:run 1>> /dev/null 2>&1
Надеюсь это поможет
Выяснил, что было не так, у меня установлено более 1 версии PHP, и по какой-то причине cron использует установку php по умолчанию, даже когда я добавил новый путь PHP в .bash_profile.
Я исправил это, добавив путь к правильной версии PHP:
* * * * * /usr/local/php566-cgi/bin/php /var/www/vhosts/website.com/httpdocs/artisan schedule:run 1>> /dev/null 2>&1
Таким образом, он вынужден работать с этой версией PHP.