Laravel cronjob на сервере не запускается

#php #laravel #centos7 #cyber-panel

#php #laravel #centos7 #киберпанель

Вопрос:

У меня установлено приложение laravel на поддомене моего веб-сайта, и я установил cronjob, но он не запускается.

Я протестировал свою команду с помощью терминала, и она сработала просто отлично, поэтому проблема связана с cronjob, а не с моей командой / консолью, я думаю.

Код

Does not work

 1- /home/example.com/public_html/process.example.com amp;amp; php artisan schedule:run >> /dev/null 2>amp;1

2- php /home/example.com/public_html/process.example.com amp;amp; php artisan schedule:run >> /dev/null 2>amp;1
  

kernel.php

 protected $commands = [
    CommandsRenewInvoices::class,
];

protected function schedule(Schedule $schedule)
{
  $schedule->command('renew:invoices')
  ->everyMinute();
}
  

Есть идеи?

Ответ №1:

Решаемая

По-видимому, мне пришлось получить свой php из другого места /usr/local/lsws/lsphp74/bin/php , а не /usr/bin/php

 /usr/local/lsws/lsphp74/bin/php /home/example.com/public_html/process.example.com amp;amp; /usr/local/lsws/lsphp74/bin/php /home/example.com/public_html/process.example.com/artisan schedule:run >> /dev/null 2>amp;1
  

Чтобы упростить приведенную выше команду и упростить ее чтение, вот ее структура:

PHP LARAVEL_APP amp;amp; PHP ARTISAN COMMAND >> /dev/null 2>amp;1

Ответ №2:

Cronjobs игнорирует PATH при запуске, поэтому он может не работать, если информация о ПУТИ не полностью доступна для него.

Пожалуйста, попробуйте изменить cronjob, чтобы использовался полный путь

Например, измените «php» на «/usr/ bin / php» (пожалуйста, используйте ваш фактический путь к php на вашем сервере)

  /home/example.com/public_html/process.example.com amp;amp; /usr/bin/php artisan schedule:run >> /dev/null 2>amp;1

/usr/bin/php /home/example.com/public_html/process.example.com amp;amp; /usr/bin/php artisan schedule:run >> /dev/null 2>amp;1

  

Пожалуйста, также укажите полный путь к artisan. Спасибо

Комментарии:

1. все еще не запущен

2. Пожалуйста, также используйте полный путь к artisan , например /home/laravel-proj/artisan (artisan находится в корне вашего проекта Laravel)

3. Я пробовал это /home/example.com/public_html/process.example.com amp;amp; /usr/bin/php /home/example.com/public_html/process.example.com/artisan schedule:run >> /dev/null 2>amp;1 , и это /usr/bin/php /home/example.com/public_html/process.example.com amp;amp; /usr/bin/php /home/example.com/public_html/process.example.com/artisan schedule:run >> /dev/null 2>amp;1 оба не сработало

4. Работает ли это, если вы запускаете измененную, длинную версию, такую как приведенная выше команда, когда вы находитесь в ТЕРМИНАЛЕ? (давайте просто проверим, правильные ли пути)