ich einen Cron-Job für Laravel 5.2Artisan :: call() außerhalb des Laravel Rahmen
Mein Hostern (auf OVH) erstellen möchten, können nur mich auf den vollständigen Pfad einer Datei zeigen, und ich bin nicht in der Lage die empfohlene Cron Eintrag von Laravel der docs zu verwenden, das heißt:
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
Deshalb habe ich die Artisan-Befehl von einem php-Datei aufrufen, außerhalb des Laravel Rahmen.
Hier ist, was meine public/cron.php
Datei wie bisher aussieht:
<?php
require __DIR__.'/../bootstrap/autoload.php';
use Illuminate\Support\Facades\Artisan;
Artisan::call('refresh');
refresh
mein Befehl ist für die Thumbnails in meinem App regenerieren.
Wenn cron.php durch meinen Browser (Prüfung auf lokale XAMPP) zugreift, der folgende Fehler auftritt:
Fatal error: Uncaught RuntimeException: A facade root has not been set. in
C:\xampp\htdocs\site\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:210
Stack trace:
#0 C:\xampp\htdocs\site\public\cron.php(7): Illuminate\Support\Facades\Facade::__callStatic('call', Array)
#1 {main} thrown in C:\xampp\htdocs\site\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 210
Ich habe auch versucht, die App zu starten, aber es macht nicht Unterschiede
$app = require_once __DIR__.'/../bootstrap/app.php';
$app->boot();
mit der Artisan Fassade zu vermeiden, habe ich versucht, die underl Aufruf ying Kernel Klasse direkt:
use Illuminate\Contracts\Console\Kernel;
$kernel = new Kernel;
$kernel->call('refresh');
Aber dies zurück:
Uncaught Error: Cannot instantiate interface Illuminate\Contracts\Console\Kernel
EDIT: Hier ist ein Screenshot von OVH cron-Schnittstelle. Die Cron-Aufgabe wird von OVH angepasst und erlaubt nur, auf den Vollpfad-URI einer Datei zu zeigen - welche Datei würde meinen Handwerkerbefehl ausführen. Meine Frage ist, was soll ich in diese Datei schreiben, und sollte es eine PHP-Datei oder ein CMD sein?
Sie können Ihre crontab also nicht mit 'crontab -e' bearbeiten? Wie werden Sie Ihre Datei in regelmäßigen Abständen ausführen, wenn Sie keine Cronjobs erstellen können? – codedge
@codedge OP sagte, er besitzt ein Shared Hosting bei OVH. Mit OVH können Kunden Cron-Jobs in ihrem Manager erstellen. 'crontab -e' ist nur eine Verknüpfung zum Öffnen '/ var/spool/cron/crontabs/' mit dem bevorzugten Texteditor. Es gibt viele andere Möglichkeiten, einige Inhalte in diese Datei zu stellen. Offensichtlich kann ein Skript auch damit umgehen. –
Arcesilas
Ich aktualisierte die Frage – PhilMarc