簡體   English   中英

無法使用Godaddy中的Cron工作在Laravel中運行任務計划

[英]Can't run a task schedule in Laravel using cron job in Godaddy

我在godaddy共享托管下運行我的Web應用程序,並且試圖運行cron作業,該作業將在laravel應用程序中調用我的計划任務。 由於某種原因,未調用調度程序。 到目前為止,我已經嘗試過以下這些命令:

          • php / path / to / artisan schedule:運行>> / dev / null 2>&1
          • home / lulzimf / php / home / path / to / artisan時間表:運行1 >> / dev / null 2>&1
          • usr / local / php / home / path / to / artisan時間表:運行1 >> / dev / null 2>&1
          • / usr / local / bin / path / to / artisan時間表:運行>> / 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();
    }

}

不只是哥迪,根據我與其他主機的經驗,我不得不在Illmuniate\\Console\\Scheduling編輯Schedule.php文件。

然后,我編輯了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因為-ea_php 70不支持cli使用的默認php版本。

所以:

  1. 檢查PHP版本,並確保它受laravel支持。
  2. 檢查cli用於執行cron的PHP版本。
  3. 驗證並使用完整路徑到php。
  4. 驗證並使用技工的完整路徑。

在某些情況下,您可能還會收到此錯誤:

未定義索引argv

為此,您將必須編輯php.ini文件,並將register_argc_argv設置為on

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM