#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. Работает ли это, если вы запускаете измененную, длинную версию, такую как приведенная выше команда, когда вы находитесь в ТЕРМИНАЛЕ? (давайте просто проверим, правильные ли пути)