it-swarm.com.de

So führen Sie den handwerklichen Befehlszeitplan aus: Auf dem Hosting-Server ausführen? (Laravel)

Ich habe die Datei statusUpdate.php im Ordner Xampp\htdocs\project\app\Console\Commands.

statusUpdate.php: 

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use DB;


class statusUpdate extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'status:update';

/**
 * The console command description.
 *
 * @var string
 */
protected $description = 'Update Job status daily';

/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    $affected = DB::table('jobs')->update(array('status' => 1));
}
}

Es wird von der folgenden offiziellen Laravel-Dokumentation erstellt ..__ Dann wurde mir \App\Console\Commands\statusUpdate::class, class in der Datei Kernel.php im Ordner xampp\htdocs\project\app\Console hinzugefügt.

Hier ist der Code der Datei karnel.php: 

<?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\statusUpdate::class,
];

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

Dann wurde ich gerannt 

pHP-Zeitplan: Ausführen des Befehls mit CMD unter Windows 7.

Nun funktioniert es gut (auf dem lokalen Server). Das Statusfeld meiner Jobtabelle wird von 1 ordnungsgemäß aktualisiert.

Aber als ich dieses Projekt auf dem Shared Hosting bereitgestellt habe und einen CRON-Befehl für meinen Server in cPanel hinzugefügt habe:

Cron-Jobbefehl ist wie folgt: php /path/to/artisan schedule:run 1>> /dev/null 2>&1

In diesem Fall funktioniert der Befehl jetzt nicht und das ist das Problem. wie kann ich es lösen?

15
Inspire Shahin

Gut. Ich gebe Ihnen die Antwort gemäß dem, was Sie gesagt haben.

Cron-Jobbefehl ist wie folgt: php /path/to/artisan schedule:run 1>> /dev/null 2>&1

Der Pfad sollte die Handwerkerdatei auf dem Server finden. So was:

Angenommen, der Ort Ihrer Handwerkerdatei ist /var/www/artisan. Dann könnte die einfache Antwort folgendermaßen aussehen:

php /var/www/artisan schedule:run 1>> /dev/null 2>&1

Prüfen Sie einfach, ob das funktioniert. Danke dir!

UPDATE:

http://i.imgur.com/wVAWAHK.png

So sollte es aussehen.

12
Aditya Giri

Das hat gut für mich funktioniert

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

Sie sollten den Befehl vom cPanel-Server als hinzufügen

/usr/local/bin/php /home/xyz/public_html/artisan schedule:run 1>> /home/xyz/public_html/log_laravel 2>&1

Dadurch bleiben alle Protokolle in /home/xyz/public_html/log_laravel.

Running scheduled command: '/opt/cpanel/ea-php71/root/usr/bin/php' 'artisan' SyncAPIOrders:orders > '/dev/null' 2>&1

In meinem Fall funktionierte cron Job nicht, wenn Sie den Befehl einmal pro Tag (d. H. 00:00) einplanen möchten, falls dieselbe Zeit nicht in einem $schedule->command();-Objekt enthalten ist

Wenn die Befehle falsch waren, erhielt ich diese Warnung in meiner E-Mail als

PHP Warning:  Module 'magickwand' already loaded in Unknown on line 0
Status: 404 Not Found
X-Powered-By: PHP/5.6.37
Content-type: text/html; charset=UTF-8

No input file specified.

In Kernel.php solltest du angeben 

/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{
    $schedule->command('SyncAPIOrders:orders')
               ->timezone('Asia/Kolkata')
               ->dailyAt('00:00');
}
1
Nishanth ॐ