2015-02-25 3 views
19

wechseln Wenn ich $ php artisan env laufen bekomme ich;Laravel 5 Wie aus dem Produktionsmodus

Current application environment: production 

Wie kann ich dies zur Entwicklung oder etwas Ähnliches ändern? So kann ich Fehler sehen .. Ich habe a lot of the documentation gelesen, aber es ist überhaupt nicht einfach für einen Anfänger zu verstehen. Ich habe wirklich keine Erfahrung mit Serverkonfiguration.

Ich bin sicher, es gibt "intelligente" Möglichkeit, dies zu tun, aber alles, was mich interessiert, ist für jetzt, manuell die Umgebung zu ändern. Wie mache ich das?

Antwort

31

Laravel 5 ruft seine Umgebungsvariablen aus der Datei .env im Stammverzeichnis Ihres Projekts ab. Sie müssen nur APP_ENV setzen, was Sie wollen, zum Beispiel:

APP_ENV=development 

Dies wird die aktuelle Umgebung zu identifizieren. Wenn Sie Fehler anzeigen möchten, müssen Sie den Debug-Modus in der gleichen Datei aktivieren:

APP_DEBUG=true 

Die Rolle der .env Datei ist, damit Sie verschiedene Einstellungen je nachdem, welche Maschine Sie Ihre Anwendung ausführen . Auf Ihrem Produktionsserver würden sich die .env Dateieinstellungen von Ihrer lokalen Entwicklungsumgebung unterscheiden.

+0

Also hat jeder Server/Umgebung eine eigene '.env' Datei? Ist das richtig? – mikelovelyuk

+6

Sie haben eine '.env' Datei, aber die Inhalte können sich auf jedem Computer unterscheiden, auf dem Sie die Anwendung ausführen. Auf Ihrem lokalen Rechner würden Sie zum Beispiel 'APP_ENV = development' und' APP_DEBUG = true' haben, aber auf Ihrem Produktionsserver wären die Werte 'APP_ENV = production' und' APP_DEBUG = false'. – Bogdan

+0

Also ja, jeder Server/Umgebung hat seine eigene '.env' Datei. – Bogdan

11

Laravel 5 verwendet .env Datei, um Ihre App zu konfigurieren. .env sollte nicht in Ihrem Repository festgeschrieben werden, wie github oder bitbucket. Auf Ihrer lokalen Umgebung Ihre .env wie folgt aussehen:

# .env 
APP_ENV=local 

Für Produktionsserver, können Sie die folgende Konfiguration haben:

# .env 
APP_ENV=production 
-4

In Laravel die Standardumgebung ist immer Produktion.

Was Sie tun müssen, um richtige Hostnamen in bootstrap/start.php für Ihre enviroments zB .:

/* 
|-------------------------------------------------------------------------- 
| Detect The Application Environment 
|-------------------------------------------------------------------------- 
| 
| Laravel takes a dead simple approach to your application environments 
| so you can just specify a machine name for the host that matches a 
| given environment, then we will automatically detect it for you. 
| 
*/ 

$env = $app->detectEnvironment(array(
    'local' => array('homestead'), 
    'profile_1' => array('hostname_for_profile_1') 
)); 
+3

Die Frage ist für Laravel 5. Deine Lösung ist für Laravel 4. In L5 gibt es keine 'bootstrap/start.php' Datei mehr. – Bogdan

+1

Vielen Dank für Ihren Kommentar. Das habe ich nicht bemerkt. –

3

Was Sie auch einen Blick haben könnte angeben, ist die freigelegte Methode Application->loadEnvironmentFrom($file)

ich eine Anwendung benötigt auf mehreren Subdomains ausgeführt werden. Also in bootstrap/app.php habe ich so etwas wie:

$envFile = '.env'; 
// change $envFile conditionally here 
$app->loadEnvironmentFrom($envFile); 
5

Vergessen Sie nicht, den Befehl php artisan config:clear auszuführen, nachdem Sie die Änderungen an der .env Datei vorgenommen haben. Wiederholen Sie dies erneut php artisan env, die die richtige Version zurückgibt.

+0

Das hat meinen Tag gerettet! Ich konnte nicht herausfinden, was falsch war. Permissions alles aber dann habe ich diesen Kommentar gesehen. Vielen Dank!! – tprj29

+0

Habe meinen Tag gerettet. Danke, Sergio. – kR105