首页 文章

无法在Godaddy中使用cron作业在Laravel中运行任务计划

提问于
浏览
2

我在godaddy共享主机下运行我的web应用程序,我正在尝试运行一个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();
    }

}

1 回答

  • 0

    不仅仅是godaddy,根据我与其他托管的经验,我必须在 Illmuniate\Console\Scheduling 中编辑 Schedule.php 文件 .

    然后我编辑 Line 49return $this->exec("/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan {$command}", $parameters);

    所以基本上这将运行 queue:work 命令或任何其他命令与完整的PHP路径和工匠的完整路径 .

    在我的情况下,我还必须添加 -ea_php 70 因为laravel不支持cli使用的默认php版本 .

    所以:

    • 检查PHP版本并确保laravel支持它 .

    • 检查cli使用的PHP版本以执行您的cron .

    • 验证并使用php的完整路径 .

    • 验证并使用工匠的完整路径 .

    在某些情况下,您可能还会收到此错误:

    undefined index argv

    为此,您必须编辑 php.ini 文件并将 register_argc_argv 设置为 on .

相关问题