So stellen Sie Laravel auf einem bereitUbuntu VPS
Von Andrea Pollastri · Letzte Aktualisierung: · Kostenlose Lektüre, keine Paywall
Ein VPS für 5–7 $/Monat ist immer noch die günstigste und flexibelste Möglichkeit, Laravel in der Produktion auszuführen – wenn Sie es richtig einrichten. Dieser Leitfaden führt durch den gesamten Produktions-Stack, jeden manuellen Schritt, die Ein-Befehl-Alternative und die Betriebsgewohnheiten, die einen Server über Jahre hinweg funktionsfähig halten.
Warum ein VPS (und wann nicht)
Beim Shared Hosting können Warteschlangenarbeiter, WebSockets oder Laravel Octane sowie verwaltete PaaS-Plattformen nicht ordnungsgemäß ausgeführt werden Kosten für Komfort mit nutzungsbasierter Preisgestaltung. Ein VPS von Hetzner, DigitalOcean, Vultr oder Linode bietet Ihnen Root-Zugriff, vorhersehbare Abrechnung und genügend Spielraum, um mehrere Laravel zu hosten Apps auf einem Computer.
- Größe: 1 vCPU / 2 GB RAM ist ein komfortabler Ausgangspunkt für eine Produktions-App mit einem Datenbank, Warteschlangenarbeiter und Cache auf derselben Box. Fügen Sie Swap für alles unter 4 GB hinzu.
- Ubuntu-Version: Verwenden Sie ein aktuelles LTS – Ubuntu 24.04 oder 26.04. Überspringen Sie vorläufige Veröffentlichungen für Produktion.
- Wann kein VPS verwendet werden sollte: Wenn niemand im Team auf eine Serverwarnung reagieren kann, wird ein verwalteter Server erstellt plattformartig Laravel Wolke ist sicherer Handel – Sie zahlen, um Operationen zum Problem eines anderen zu machen.
Der Produktionsstapel, erklärt
Jeder Produktions-Laravel-Server konvergiert auf denselben Komponenten. Verstehen Sie vorher, was jedes Stück bewirkt Sie automatisieren etwas davon:
| Komponente | Rolle | Notizen |
|---|---|---|
| Nginx | Webserver / Reverse-Proxy | Stellt statische Assets bereit und leitet PHP-Anfragen weiter |
| PHP-FPM oder Octane | PHP Laufzeit | FPM ist der zuverlässige Standard; Octane (FrankenPHP) sorgt dafür, dass die App für einen hohen Durchsatz gebootet bleibt |
| MariaDB / PostgreSQL | Datenbank | Entweder funktioniert mit Laravel; Wählen Sie pro App |
| Valkey (Redis-kompatibel) | Cache, Sitzungen, Warteschlangen | Open-source Redis fork; Kommen Sie vorbei für Laravel |
| Supervisor | Prozessmanager | Hält queue:work und Horizon am Leben |
| Cron | Planer | Ein Eintrag: artisan schedule:run jede Minute |
| UFW + Fail2ban | Firewall / Brute-Force-Schutz | Standardmäßig verweigern, wiederholte SSH-Fehler verbieten |
| Certbot | TLS Zertifikate | Kostenlose Let's Encrypt-Zertifikate mit automatischer Verlängerung |
| Releases im Deployer-Stil | Bereitstellung ohne Ausfallzeiten | Releases-Verzeichnis + Symlink-Tausch |
Die manuelle Einrichtung, Schritt für Schritt
Dies ist die ehrliche, ungekürzte Checkliste. Planen Sie beim ersten Mal zwei bis vier Stunden ein und denken Sie daran, dass Sie alle besitzen werden Eine dieser Möglichkeiten auch beim Upgrade.
- Erstellen Sie einen sudo-Benutzer und sperren Sie SSH.
adduser deploy, installieren Sie Ihre öffentliche Schlüssel, dann deaktivieren Sie die Root-Anmeldung und die Passwortauthentifizierung/etc/ssh/sshd_config. - Aktivieren Sie die Firewall.
ufw allow OpenSSH http httpsdannufw enable. Installieren Sie Fail2ban für SSH-Brute-Force-Schutz. - Installieren Sie Nginx.
apt install nginx. - Installieren Sie PHP. Fügen Sie ein verwaltetes PHP-Repository hinzu und installieren Sie es
php8.x-fpmmit den Erweiterungen Laravel benötigt: mbstring, xml, curl, zip, intl, mysql (oder pgsql), redis, gd, opcache. - Optimieren Sie PHP für die Produktion. Opcache aktivieren, vernünftig einstellen
memory_limitundupload_max_filesize, dreh dich umexpose_phpaus. - Installieren Sie Composer weltweit.
- Installieren Sie MariaDB, lauf
mariadb-secure-installation, eine Datenbank erstellen und ein dedizierter Benutzer pro App – root niemals wiederverwenden. - Installieren Sie Valkey (oder Redis) für Cache, Sitzungen und Warteschlangen.
- Schreiben Sie den Serverblock Nginx. Dokumentstammpunkte auf
current/public,try_filesfällt zurück aufindex.php, FastCGI wird an den PHP-FPM-Socket der App übergeben. - Versenden Sie den Code. Klonen Sie in ein
releases/Verzeichnis,composer install --no-dev --optimize-autoloader, kopieren.env, laufphp artisan key:generate,storage:link, und korrigieren Sie die Berechtigungen nur sostorage/undbootstrap/cache/sind beschreibbar. - Migrieren und zwischenspeichern.
php artisan migrate --forcedannconfig:cache,route:cache,view:cache. - Konfigurieren Sie Supervisor laufen
php artisan queue:work(oder Horizon) und Starten Sie es bei jeder Bereitstellung neu. - Fügen Sie den Planer cron hinzu:
* * * * * php artisan schedule:run. - Stellen Sie TLS Zertifikate aus mit Certbot und erzwinge HTTPS.
Multiplizieren Sie nun mit jeder App, die Sie hosten, und noch einmal mit jedem Server – und sorgen Sie dafür, dass PHP, Nginx und das Betriebssystem gepatcht bleiben für immer. Es ist alles machbar; Es ist einfach undifferenzierte Arbeit.
Die Ein-Befehl-Alternative
Alles im vorherigen Abschnitt ist genau das Richtige Cipi automatisiert. Auf einem frisch Ubuntu 24.04/26.04 VPS:
In etwa zehn Minuten erhalten Sie den vollständigen Stack – Nginx, PHP, MariaDB, Valkey, Supervisor, UFW, Fail2ban,
Certbot, Deployer – plus Härtung, die Sie sonst manuell durchführen würden: Root-Anmeldung deaktiviert, SSH nur mit Schlüssel für den
Admin-Benutzer und ein zufälliges Root-Passwort, das in gespeichert ist /etc/cipi/server.json. Dann ist jede App eine
mehr Befehl:
Das sieht vor Isolierter Systembenutzer, PHP-FPM-Pool, Nginx Vhost und Datenbank pro App,
verbindet GitHub oder GitLab mit Bereitstellungsschlüsseln und Webhooks für Git-Bereitstellungen ohne Ausfallzeiten und verbindet Warteschlangen
Arbeiter und der Planer. SSL ist cipi ssl install; PostgreSQL ist
cipi db install pgsql. Siehe die den Anfang machen
Führer für die vollständige Komplettlösung oder die Vergleichszentrum wenn
Sie vergleichen es mit Forge, Ploi und Freunden.
Wichtige Vorgänge nach der Bereitstellung
Es ist schon die halbe Miete, zu erreichen, dass es funktioniert. Es sind diese Gewohnheiten, die einen Server, der jahrelang hält, von einem anderen unterscheiden das überrascht dich:
- Backups, die Sie tatsächlich wiederhergestellt haben. Automatisieren Sie Datenbank- und Speichersicherungen, um
S3-kompatibler Speicher (
cipi backup configurekümmert sich um Terminplanung und Aufbewahrung). Beliebige S3 Zielwerke – einschließlich Johnny, Ein open-source S3-kompatibler Objektspeicher, den Sie auf einem zweiten VPS ausführen können, um wirklich unabhängig zu sein Off-Site-Kopien. Führen Sie vierteljährlich eine Wiederherstellungsübung durch: Ein ungetestetes Backup ist eine Hoffnung, kein Plan. - Ausnahmeverfolgung vom ersten Tag an. Produktionsfehler müssen Sie vor den Benutzern erreichen tun. Boogle ist ein self-hosted Ausnahme-Tracker, der Fehlerdaten in Ihrer eigenen Infrastruktur speichert – eine gute Lösung, wenn Sie sich für VPS entscheiden. für Dateneigentum in erster Linie.
- Gesundheitschecks und Protokolle. Cipi 5 versendet App-Zustandsprüfungen und
cipi app logsTails Laravel, Nginx und Bereitstellung von Protokollen ohne SSH-Gymnastik. - Disziplin beim Patchen. Unbeaufsichtigte Betriebssystem-Sicherheitsupdates plus ein bewusstes PHP-Upgrade
Pfad (
cipi php upgradeverwaltet PHP Sicherheitspatches mit einer wöchentlichen Überprüfung) schlagen „Wir werden aktualisieren, wenn wir uns erinnern". - Zähmen Sie Ihre SSH-Ausbreitung. Sobald Sie mehr als zwei Server betreiben, verrotten die Verbindungsdetails Ihre Shell-Historie. Anschl ist ein Winzling Bash-Tool, das Server als benannte Aliase verwaltet – passt gut zu einer Flotte von Cipi-Maschinen.
Häufige Fehler, die es zu vermeiden gilt
- Bereitstellung als Root. Eine kompromittierte App besitzt die gesamte Box. Verwenden Sie Pro-App-Benutzer – dies Aus diesem Grund isoliert Cipi jede App unter ihrem eigenen Systembenutzer.
- APP_DEBUG=true in der Produktion. Debug-Seiten geben Umgebungsvariablen, Anmeldeinformationen und Pfade preis. Es ist der häufigste selbstverschuldete Laravel-Verstoß.
- Engagement
.envoder gehen.git/über das Internet zugänglich. - 777 Berechtigungen „um den Fehler zu beheben“. Nur
storage/undbootstrap/cache/müssen vom Laufzeitbenutzer beschreibbar sein. - Kein Warteschlangenarbeiter. E-Mails und Aufträge stapeln sich stillschweigend für immer in der Warteschlangentabelle.
- Opcache überspringen – kostenloser 2–3-facher Durchsatzverlust.
- Kein Austausch bei kleinen Instanzen – Composer und Asset-Builds OOM-Kill zum ungünstigsten Zeitpunkt.
- Ungetestete SSL Verlängerungen. Zertifikate verlängern sich automatisch bis zu dem Tag, an dem dies nicht mehr der Fall ist. überwachen Ablauf.
Setzen Sie dies mit Cipi in die Praxis um
Cipi ist die kostenlose open-source Bereitstellung CLI, auf die in diesem Handbuch verwiesen wird: Ein Befehl verwandelt einen neuen Ubuntu VPS in einen gehärteten Produktionsserver für Laravel – Nginx, PHP-FPM oder Octane, MariaDB oder PostgreSQL, Warteschlangen, Scheduler, SSL und Git-Bereitstellungen ohne Ausfallzeiten enthalten.
Häufig gestellte Fragen
Was sind die Mindestserveranforderungen für Laravel in der Produktion?
Eine einzelne vCPU mit 2 GB RAM führt bequem eine typische Laravel-App mit Datenbank, Cache und einem Warteschlangenarbeiter aus; Swap unter 4 GB hinzufügen. Octane, Horizon und umfangreiche Build-Schritte profitieren von 4 GB. Cipi installiert seinen vollständigen Stack auf jedem neuen Ubuntu 24.04/26.04 VPS.
Kann ich mehrere Laravel-Apps auf einem VPS hosten?
Ja, und es ist normalerweise die kostengünstigste Einrichtung. Der Schlüssel liegt in der Isolation: Jede App sollte über einen eigenen Systembenutzer, einen eigenen PHP-FPM-Pool und eigene Datenbankanmeldeinformationen verfügen, damit eine kompromittierte oder sich schlecht verhaltende App die anderen nicht berühren kann. Cipi stellt genau diese Isolation automatisch mit cipi app create bereit.
Sollte ich PHP-FPM oder Laravel Octane verwenden?
PHP-FPM ist die langweilige, zuverlässige Standardeinstellung und für die meisten Apps richtig. Octane sorgt dafür, dass das Framework zwischen Anfragen gebootet wird, und glänzt bei APIs mit hohem Datenverkehr und latenzempfindlichen Endpunkten. Mit Cipi können Sie beide auf demselben Server ausführen und Octane Apps mit cipi app create --octane erstellen.
Wie halte ich PHP auf Ubuntu auf dem Laufenden?
Verfolgen Sie ein gepflegtes PHP-Repository und wenden Sie Sicherheitspatches umgehend an, anstatt auf Distributions-Upgrades zu warten. Cipi verwaltet PHP Sicherheitspatches selbst mit einer wöchentlichen Überprüfung (cipi php Upgrade), sodass Server nicht stillschweigend ins Hintertreffen geraten.
Benötige ich weiterhin Laravel Forge, wenn ich mein eigenes VPS verwalte?
Nein. Forge ist ein kostenpflichtiges SaaS, das denselben Stack automatisiert, den dieser Leitfaden beschreibt. Wenn Sie diese Automatisierung ohne das Abonnement oder die Abhängigkeit von Drittanbietern wünschen, deckt Cipi den gleichen Workflow kostenlos ab und open source – sehen Sie sich den detaillierten Vergleich von Cipi vs. Forge an.