Не удается запустить расписание задач в Laravel с помощью задания cron в Godaddy

Я запускаю свое веб-приложение на виртуальном хостинге godaddy и пытаюсь запустить задание cron, которое вызовет мою задачу расписания в моем приложении laravel. Почему-то не вызывается планировщик. Это команды в godaddy, которые я пробовал до сих пор:

          • php /path/to/artisan schedule:run >> /dev/null 2>&1
          • home/lulzimf/php /home/path/to/artisan schedule:run 1>> /dev/null 2>&1
          • usr/local/php /home/path/to/artisan schedule:run 1>> /dev/null 2>&1
          • /usr/local/bin /path/to/artisan schedule:run >> /dev/null 2>&1

Кажется, что ни одна из этих команд не выполняет мой планировщик задач, я пробовал вызвать команду с помощью команды artisan, она работает ... Как вы думаете, что не работает?

Вот как выглядит мое ядро:

<?php namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel {

    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        'App\Console\Commands\Inspire',
        'App\Console\Commands\UpdateClassSession',
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('inspire')
                 ->hourly();
        $schedule->command('class-session-update')
                 ->everyFiveMinutes();
    }

}

person artan    schedule 26.08.2016    source источник
comment
Я предполагаю, что у вас есть реальный путь к файлу artisan на вкладке cron, а не / path / to / artisan?   -  person Denis Mysenko    schedule 26.08.2016
comment
@DenisMysenko, как это проверить?   -  person artan    schedule 26.08.2016
comment
/ path / to / artisan - это просто заполнитель. Тот, кто сказал вам использовать это, имел в виду, что вам нужно заменить эту строку вашим фактическим путем к файлу artisan. вы не можете ожидать, что / path / to будет настоящей папкой   -  person Denis Mysenko    schedule 29.08.2016


Ответы (1)


Не только godaddy, по моему опыту работы с другим хостингом, мне приходилось редактировать Schedule.php файл в Illmuniate\Console\Scheduling.

А потом я отредактировал Line 49 на это return $this->exec("/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan {$command}", $parameters);

Таким образом, в основном это запустит команду queue:work или любые другие команды с полным путем к php и полным путем к artisan.

В моем случае мне также пришлось добавить -ea_php 70, потому что версия php по умолчанию, используемая cli, не поддерживалась laravel.

So:

  1. Проверьте версию PHP и убедитесь, что она поддерживается laravel.
  2. Проверьте версию PHP, используемую cli для выполнения вашего cron.
  3. Проверьте и используйте полный путь к php.
  4. Подтвердите и используйте полный путь к ремесленнику.

В некоторых случаях вы также можете получить эту ошибку:

неопределенный индекс argv

Для этого вам нужно будет отредактировать файл php.ini и установить register_argc_argv на on.

person user3718908    schedule 06.04.2017