Laravel cronjob на сервере не запускается
У меня установлено приложение laravel на поддомене моего веб-сайта, и я установил cronjob, но оно не срабатывает.
Я проверил свою команду с помощью терминала, и он отлично запускается, поэтому проблема связана с cronjob, а не с моей командой / консолью, я думаю.
Код
Does not work
1- /home/example.com/public_html/process.example.com && php artisan schedule:run >> /dev/null 2>&1
2- php /home/example.com/public_html/process.example.com && php artisan schedule:run >> /dev/null 2>&1
kernel.php
protected $commands = [
Commands\RenewInvoices::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->command('renew:invoices')
->everyMinute();
}
Есть идеи?
2 ответа
Решено
Видимо мне пришлось получить свой php из другого места
/usr/local/lsws/lsphp74/bin/php
скорее, чем
/usr/bin/php
/usr/local/lsws/lsphp74/bin/php /home/example.com/public_html/process.example.com && /usr/local/lsws/lsphp74/bin/php /home/example.com/public_html/process.example.com/artisan schedule:run >> /dev/null 2>&1
Чтобы упростить команду выше и облегчить чтение, вот ее структура:
PHP
LARAVEL_APP
&&
PHP
ARTISAN COMMAND
>> /dev/null 2>&1
Cronjobs игнорируют PATH при запуске, поэтому он может не работать, если информация PATH ему не полностью доступна.
Попробуйте изменить задание cron, чтобы использовался полный путь
Например, измените "php" на "/usr/bin/php" (пожалуйста, используйте ваш фактический путь php на вашем сервере)
/home/example.com/public_html/process.example.com && /usr/bin/php artisan schedule:run >> /dev/null 2>&1
/usr/bin/php /home/example.com/public_html/process.example.com && /usr/bin/php artisan schedule:run >> /dev/null 2>&1
Пожалуйста, также укажите полный путь ремесленника. благодаря