Пользовательская команда Laravel Artisan недоступна в работе cron

У меня есть пользовательские команды Artisan, которые запускаются локально, а также на моем рабочем сервере, когда я нахожусь в SSH'd, но недоступны для любых заданий cron. Я даже попробовал запустить его как пользователь, выполняющий задание cron, и он отлично работает с моей консоли.

Когда я запускаю php artisan в приведенных выше настройках, мои пользовательские команды перечислены и доступны. Тем не менее, они не указаны, когда я запускаю php artisan в качестве задания cron.

Кроме того, пытаясь запустить пользовательскую команду php artisan subjects:calculate как задание cron, приводит к следующей ошибке:

[InvalidArgumentException]
There are no commands defined in the "subjects" namespace.

Related of "Пользовательская команда Laravel Artisan недоступна в работе cron"

Я боролся с той же ошибкой, и я нашел решение. Первые неудачные попытки

 */5 * * * * /usr/bin/php /home/mysite/public_html/artisan my:command */5 * * * * php /home/mysite/public_html/artisan my:command 

Решение

 */5 * * * * /usr/local/bin/php /home/mysite/public_html/artisan my:command 

Обязательно добавьте команду в файл app / start / artisan.php:

 Artisan::add(new SubjectsCommand); 

или если вы используете контейнер IOC:

 Artisan:resolve('SubjectsCommand'); 

Затем запустите CronJob из папки приложения:

 00 09-18 * * 1-5 php /path/to/yourapp/artisan subjects:calculate 

или

 00 09-18 * * 1-5 /usr/bin/php /path/to/yourapp/artisan subjects:calculate 

По крайней мере, для меня это сработало:

 class Kernel extends ConsoleKernel { protected $commands = [ // Commands\YourCommand::class, ]; } 

Просто добавила мою команду в список ядра команд.

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

 cd /path/to/yourproject && php artisan subjects:calculate