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

Пожалуйста, также укажите полный путь ремесленника. благодаря

Другие вопросы по тегам