Я пришел к выводу, что то, как вы пишете cron для планировщика laravel, варьируется от хостинга к хостингу, поэтому документы в этом случае бесполезны.
Тот же код, который я использовал на моем предыдущем хосте (siteground), похоже, не работает на моем текущем (inmotion).
Кажется, работает cron, который запускает планировщик, тот, который я установил из моего CPanel:
php -q /home/xxxxx/xxxxx/artisan schedule:run
Я говорю, что это работает, потому что я получаю это письмо всякий раз, когда запускается мой cron:
Running scheduled command: /usr/bin/php -q /home/xxxxx/xxxxx/artisan {command} > '/dev/null' 2>&1 &
Теперь вышеприведенный скрипт, похоже, не выполняется, он просто зависает, и процессы накапливаются, съедая мою память до тех пор, пока весь мой сервер не рухнет.
Так что я совершенно запутался здесь, почему php -q /home/xxxxx/xxxxx/artisan schedule:run
выполнить, но каким-то образом мое приложение не может выполнить /usr/bin/php -q /home/xxxxx/xxxxx/artisan {command}
Я погуглил это и несколько предложений, где использовать php-cli
вместо php -q
но php-cli дает мне command not found
ошибка.
Поэтому я попросил поддержки об этом, и вот что они сказали:
Я не уверен, как вы смогли выполнить эту команду с другим
host, так как php-cli не является командой для интерфейса командной строки php.
К сожалению, потому что это недопустимая команда, я не уверен, что
понять, что вы пытаетесь достичь, запустив это.php -q — это опция, которая выполняет php-cli, что вам и нужно
использовать для своих крон; однако он будет правильно выполняться только в том случае, если
кодирование файла, который вы выполняете, является правильным.
Я занимаюсь этим уже 2 дня, мой вопрос: как заставить мой планировщик laravel работать без ошибок, есть ли у кого-нибудь опыт развертывания приложения laravel (lumen) на серверах inmotion или аналогичных? Заранее спасибо. 🙂
Так что, возможно, это как-то связано с версией cli php, но пока я не уверен, но я наконец-то заставил ее работать с этим
/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan schedule:run
и затем я отредактировал свой файл Illuminate / Console / Scheduling / Schedule.php в строке 49 так:
return $this->exec("/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan {$command}", $parameters);
Кажется, сейчас работает. 🙂
Других решений пока нет …