2017-10-05 16 views
1

Ich habe ein Problem beim Zugriff auf die env-Variablen aus Env-Datei in Laravel. Die Anwendung wird bereits auf einer der gemeinsam genutzten Hosting-Websites gehostet. Wenn ich die Variable APP_KEY ausgedruckt habe, wird sie leer zurückgegeben.Zugriff auf Env-Variablen in Laravel

Ich habe versucht, wenn die env-Datei mithilfe file_exists Funktion innerhalb der index.php Datei im öffentlichen Verzeichnis vorhanden ist zu prüfen, und es kehrt true doch kann ich die env Variablen nicht zugreifen. Dadurch ergibt sich ein Fehler in der Chiffre wegen leerem appkey.

Dies geschah nach diesem Codeblock in der index.php Datei im öffentlichen Verzeichnis:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

Wenn ich die $response->send() drucken, es zeigte die Chiffre Fehler.

Ich tat das gleiche in meinem lokalen und es zeigte den appkey Wert ohne Chiffrierfehler.

Die Dateien, die ich in der Shared Hosting-Site verwendet habe, sind die gleichen Dateien von meinem lokalen. Dies ist das erste Mal, dass ich die Laravel-Anwendung hosten. Vielleicht gibt es einige Dinge, die ich vermisst habe?

Haben Sie eine Idee, warum das passiert? Vielen Dank.

+0

also einfach 'php artisan key: generate' ausführen? – Option

+0

Aber die Anwendung ist bereits gehostet. –

+0

Die Schlüsselaktualisierung sollte kein Problem verursachen. – Option

Antwort

0

Eine Möglichkeit ist, dass Config-Caching aktiviert ist. In diesem Fall gibt nur env Anrufe in config/ Dir einen Wert zurück.

Dies ist in der Config-docs https://laravel.com/docs/5.5/configuration

Wenn Sie den config ausführen kryptisch erklärt: Cache-Befehl während des Bereitstellungsprozesses, sollten Sie sicher sein, dass Sie nur die env-Funktion aus Ihren Konfigurationsdateien aufrufe.

+0

So env-Werte können nur innerhalb der Konfigurationsdateien aufgerufen werden? –

+0

korrekt, also stellen Sie sicher, dass Sie alle benötigten env-Werte in die Konfigurationsdateien eingeben, damit Ihre Anwendung sie verwenden kann. BTW, können Sie eine 'php artisan config: clear 'ausführen und sehen, ob Ihre env Anrufe funktionieren dann – Otto

Verwandte Themen