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

时间:2016-08-26 00:23:54

标签: php laravel cron crontab cron-task

我在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();
    }

}

1 个答案:

答案 0 :(得分:0)

不仅仅是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路径和工匠的完整路径。

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

所以:

  1. 检查PHP版本并确保laravel支持。
  2. 检查cli使用的PHP版本以执行您的cron。
  3. 验证并使用php的完整路径。
  4. 验证并使用工匠的完整路径。
  5. 在某些情况下,您可能会收到此错误:

      

    undefined index argv

    为此,您需要修改 php.ini 文件并将register_argc_argv设置为on