Zum Hauptinhalt springen

Einführung

Alle Konfigurationsdateien des Laravel-Frameworks liegen im Verzeichnis config/. Zu jeder Option gibt es einen Kommentar; öffnen Sie die Dateien und werfen Sie einen Blick auf die verfügbaren Optionen. In den Konfigurationsdateien werden Datenbank-Zugangsdaten, Mailserver-Einstellungen, die Anwendungs-URL, der Verschlüsselungsschlüssel und viele weitere Kernwerte verwaltet.

Der Befehl about

Mit dem Artisan-Befehl about erhalten Sie eine Übersicht über Konfiguration, Treiber und Umgebung Ihrer Anwendung.
php artisan about
Möchten Sie nur einen bestimmten Abschnitt sehen, nutzen Sie --only.
php artisan about --only=environment
Um die Werte einer bestimmten Konfigurationsdatei im Detail anzusehen, ist config:show praktisch.
php artisan config:show database

Umgebungskonfiguration (.env)

Häufig möchten Sie Konfigurationswerte je nach Ausführungsumgebung umschalten – zum Beispiel unterschiedliche Cache-Treiber lokal und in Produktion. Laravel nutzt dafür die PHP-Bibliothek DotEnv. Bei einer Neuinstallation enthält das Projekt-Root eine Datei .env.example mit üblichen Umgebungsvariablen, die während der Installation automatisch nach .env kopiert wird.
Bei Teamentwicklung ist es hilfreich, .env.example gepflegt in der Repository-Historie zu halten. Mit Platzhalterwerten sehen andere Teammitglieder klar, welche Umgebungsvariablen benötigt werden.

Sicherheit der Umgebungsdateien

Committen Sie die .env-Datei nicht in die Versionskontrolle. Jeder Entwickler und Server benötigt eigene Werte; im Repository besteht bei einem Zwischenfall das Risiko, dass sensible Informationen preisgegeben werden.
Laravel bringt jedoch eine Verschlüsselungsfunktion mit, sodass Sie verschlüsselte Umgebungsdateien sicher in der Versionskontrolle ablegen können.

Zusätzliche Umgebungsdateien

Beim Start der Anwendung prüft Laravel, ob die Umgebungsvariable APP_ENV oder das CLI-Argument --env gesetzt ist. Ist dies der Fall und existiert eine Datei .env.[APP_ENV], wird diese geladen. Andernfalls wird die Standard-.env verwendet.

Typen von Umgebungsvariablen

Alle Werte in der .env-Datei werden als Strings geparst. Damit env() aber unterschiedliche Typen zurückgeben kann, sind einige Spezialwerte vordefiniert.
Wert in .envRückgabewert von env()
true(bool) true
(true)(bool) true
false(bool) false
(false)(bool) false
empty(string) ''
(empty)(string) ''
null(null) null
(null)(null) null
Werte mit Leerzeichen setzen Sie in doppelte Anführungszeichen.
APP_NAME="My Application"

Umgebungsvariablen abrufen

Alle Variablen aus .env werden bei jedem Request in das PHP-Superglobal $_ENV geladen. Innerhalb von Konfigurationsdateien holen Sie Werte über die Funktion env().
'debug' => (bool) env('APP_DEBUG', false),
Das zweite Argument ist der Standardwert, der zurückgegeben wird, wenn die Variable nicht existiert.

Aktuelle Umgebung ermitteln

Die aktuelle Umgebung wird durch die Variable APP_ENV in der .env-Datei bestimmt. Sie lässt sich mit der Methode environment der Facade App abrufen.
use Illuminate\Support\Facades\App;

$environment = App::environment();
Mit Argumenten prüfen Sie eine bestimmte Umgebung.
if (App::environment('local')) {
    // lokale Umgebung
}

if (App::environment(['local', 'staging'])) {
    // lokal oder Staging
}

Umgebungsdateien verschlüsseln

Unverschlüsselte .env-Dateien gehören nicht in die Versionskontrolle. Laravel bietet aber eine Verschlüsselungsfunktion.
php artisan env:encrypt
Nach dem Aufruf ist die .env verschlüsselt und ihr Inhalt liegt in .env.encrypted. Der Entschlüsselungsschlüssel wird in der Ausgabe angezeigt – speichern Sie ihn in einem sicheren Passwortmanager. Zum Entschlüsseln verwenden Sie env:decrypt.
php artisan env:decrypt

Zugriff auf Konfigurationswerte

Mit der Facade Config oder der globalen Funktion config() greifen Sie überall in Ihrer Anwendung auf Konfigurationswerte zu. Sie verwenden die „Punkt”-Notation aus Dateiname und Optionsname.
use Illuminate\Support\Facades\Config;

$value = Config::get('app.timezone');

// Auch über die globale Funktion
$value = config('app.timezone');

// Default-Wert angeben, falls Schlüssel fehlt
$value = config('app.timezone', 'Asia/Tokyo');
Zur Laufzeit setzen Sie Werte über Config::set() oder indem Sie ein Array an config() übergeben.
Config::set('app.timezone', 'America/Chicago');

config(['app.timezone' => 'America/Chicago']);
Es gibt auch typisierte Getter, die eine Ausnahme werfen, wenn der Typ nicht passt.
Config::string('config-key');
Config::integer('config-key');
Config::float('config-key');
Config::boolean('config-key');
Config::array('config-key');
Config::collection('config-key');

Konfigurations-Cache

Für bessere Performance können Sie alle Konfigurationsdateien in einer Datei zwischenspeichern.
php artisan config:cache
Der Befehl kombiniert alle Konfigurationsoptionen in einer Datei, die das Framework besonders schnell laden kann.
Führen Sie config:cache als Teil Ihres Produktions-Deployments aus. Während der lokalen Entwicklung ändern sich Konfigurationen häufig – dort sollten Sie ihn nicht ausführen.
Sobald der Cache existiert, wird die .env-Datei bei Anfragen oder Artisan-Aufrufen nicht mehr geladen. env() liefert dann nur noch systemseitige Umgebungsvariablen.
Rufen Sie env() daher ausschließlich aus Dateien im Verzeichnis config/ auf. Im Rest Ihrer Anwendung greifen Sie über config() auf Werte zu.
Den Cache leeren Sie mit config:clear.
php artisan config:clear

Konfigurationsdateien veröffentlichen

Viele Konfigurationsdateien liegen bereits im Verzeichnis config/, aber einige wie cors.php oder view.php sind standardmäßig nicht sichtbar. Zum Veröffentlichen verwenden Sie config:publish.
php artisan config:publish

php artisan config:publish --all

Debug-Modus

Die Option debug in config/app.php legt fest, wie viele Fehlerinformationen Nutzern angezeigt werden. Sie folgt standardmäßig dem Wert von APP_DEBUG in .env.
Setzen Sie APP_DEBUG in Produktion immer auf false. Bleibt der Wert auf true, könnten sensible Konfigurationsdaten an Endnutzer gelangen.
# Lokale Entwicklung
APP_DEBUG=true

# Produktion
APP_DEBUG=false

Wartungsmodus

Im Wartungsmodus wird für jede Anfrage eine benutzerdefinierte View angezeigt. So können Sie die Anwendung während Updates oder Wartungsarbeiten vorübergehend „deaktivieren”.

Wartungsmodus aktivieren

php artisan down
Mit der Option --refresh wird der Browser nach der angegebenen Zeit automatisch neu geladen.
php artisan down --refresh=15
Die Option --retry wird als Wert für den HTTP-Header Retry-After verwendet.
php artisan down --retry=60

Wartungsmodus umgehen

Über ein Secret-Token gewähren Sie einzelnen Nutzern Zugang.
php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"
Mit --with-secret erzeugt Laravel das Token automatisch.
php artisan down --with-secret

Wartungsmodus in Multi-Server-Setups

Standardmäßig verwaltet Laravel den Wartungsmodus dateibasiert. Bei mehreren Servern ist die cachebasierte Variante praktisch.
APP_MAINTENANCE_DRIVER=cache
APP_MAINTENANCE_STORE=database

Wartungs-View vorab rendern

Wenn Sie während eines Deployments php artisan down ausführen, könnten Nutzer während des Update-Prozesses Fehler zu Gesicht bekommen. Mit --render können Sie die View vorab rendern.
php artisan down --render="errors::503"
Alternativ leiten Sie im Wartungsmodus alle Anfragen an eine URL um.
php artisan down --redirect=/

Wartungsmodus deaktivieren

php artisan up
Sie können das Standard-Wartungs-Template anpassen, indem Sie resources/views/errors/503.blade.php anlegen.
Wenn Sie Downtime vollständig vermeiden möchten, ziehen Sie eine vollständig verwaltete Plattform wie Laravel Cloud in Betracht.

Nächste Schritte

Routing

Lernen Sie die Grundlagen des Routings zur Verknüpfung von URLs und Controllern.
Zuletzt geändert am 13. Juli 2026