Skip to main content

Einführung

Beim Ausrollen einer Laravel-Anwendung in Produktion sind einige Vorbereitungen sinnvoll, damit sie möglichst effizient läuft. Dieser Leitfaden zeigt die wichtigsten Punkte für ein zuverlässiges Produktions-Deployment.

Deployment-Ablauf

Server-Voraussetzungen

Laravel benötigt PHP 8.3 oder höher und die folgenden Erweiterungen:

Serverkonfiguration

Nginx

Für Nginx nutzen Sie folgende Konfiguration als Basis. Wichtig: Alle Anfragen an public/index.php weiterleiten. Verschieben Sie index.php nicht in den Projekt-Root – sonst werden vertrauliche Dateien öffentlich.

FrankenPHP

FrankenPHP ist ein moderner, in Go geschriebener PHP-Server. Sie starten Ihre Laravel-Anwendung mit einem einzigen Befehl:
Details zu HTTP/3, moderner Kompression, Laravel Octane und Standalone-Binaries finden Sie in der Laravel-Doku von FrankenPHP.

Verzeichnisrechte

Laravel benötigt Schreibrechte auf bootstrap/cache und storage. Sorgen Sie dafür, dass der Webserver-Prozess in diese Verzeichnisse schreiben kann.

Optimierung

Zur Produktions-Deployzeit sollten Sie Konfiguration, Events, Routen und Views cachen. Der Befehl optimize erledigt alles gebündelt.
Zum Löschen:

Einzelne Optimierungsbefehle

optimize führt folgende Befehle aus – bei Bedarf können Sie sie einzeln nutzen.
Nach config:cache darf env() nur noch innerhalb von Konfigurationsdateien aufgerufen werden. Nach dem Cachen wird .env nicht mehr gelesen, sodass env() außerhalb null liefert.

Dienste neu laden

Nach einem Deployment müssen langlaufende Dienste wie Queue-Worker, Laravel Reverb oder Laravel Octane den neuen Code laden – also neu starten.
Der Befehl beendet lade-fähige Dienste. Ihr Prozess-Manager (z. B. Supervisor) soll sie automatisch wieder starten.
Bei Laravel Cloud erfolgt das grazile Reloaden aller Dienste automatisch – der reload-Befehl entfällt.

Debug-Modus

Die Option debug in config/app.php steuert, wie viel Fehlerinformation an Nutzer geht. Standardmäßig richtet sich der Wert nach APP_DEBUG aus .env.
Setzen Sie APP_DEBUG in Produktion unbedingt auf false. Bleibt APP_DEBUG=true, könnten Zugangsdaten und geheime Schlüssel für Endnutzer sichtbar werden.

Health-Check-Route

Laravel bringt eine Health-Check-Route mit, die sich mit Uptime-Monitoren, Load Balancern oder Kubernetes verbindet. Standardmäßig gibt es den Endpunkt /up. Er antwortet mit 200, wenn die Anwendung ordnungsgemäß gestartet ist, andernfalls mit 500. Der Pfad ist in bootstrap/app.php konfigurierbar:
Beim Aufruf wird das Event Illuminate\Foundation\Events\DiagnosingHealth gefeuert, sodass Sie eigene Prüfungen (Datenbank, Cache) in Listenern ergänzen können.

Deployment mit Laravel Cloud oder Forge

Laravel Cloud

Suchen Sie eine vollständig verwaltete, automatisch skalierende Plattform, ist Laravel Cloud die Empfehlung. Eine für Laravel optimierte PaaS mit Managed Compute, DB, Cache und Object Storage. Sie wird vom Laravel-Team direkt getunt und integriert sich nahtlos.

Laravel Forge

Wenn Sie Server selbst verwalten möchten, sich aber nicht mit dem Setup von Nginx, MySQL usw. befassen wollen, ist Laravel Forge praktisch. Forge erstellt Server bei DigitalOcean, Linode, AWS und Co. und installiert Nginx, MySQL, Redis, Memcached, Beanstalk automatisch.

Nächste Schritte

Deployment — Offizielle Doku

Ausführliche und aktuelle Details zur Deployment-Konfiguration finden Sie in der offiziellen Dokumentation.
Zuletzt geändert am 13. Juli 2026