Laravel Installation · 16 min read · Sep 23, 2025
Wie man das Laravel PHP Framework mit Nginx auf Ubuntu 22.04 installiert

Laravel ist ein kostenloses und Open-Source-PHP-Webframework, das von Taylor Otwell erstellt wurde. Es basiert auf Symfony und folgt dem Architekturmodell Model-View-Controller. Es ist darauf ausgelegt, hochwertige Webanwendungen mit seinen bedeutenden und eleganten Syntaxen zu erstellen. Es hat viele integrierte Funktionen, die die Entwicklung von Webanwendungen einfacher und schneller machen. Laravel gewann an Popularität, nachdem Version 3 veröffentlicht wurde, die nützliche Funktionen wie die Artisan-Befehlszeile und Unterstützung für Datenbanken enthält und ein Verpackungssystem namens Bundles einführte.
Dieses Tutorial zeigt Ihnen, wie Sie das Laravel PHP Framework mit dem Nginx-Webserver auf Ubuntu 22.04 installieren.
Voraussetzungen
- Ein Server, der Ubuntu 22.04 ausführt.
- Ein gültiger Domainname, der auf Ihre Server-IP zeigt.
- Ein Root-Passwort, das auf dem Server konfiguriert ist.
Installieren Sie den LEMP-Server
Bevor Sie beginnen, müssen Sie den Nginx-Webserver, das MariaDB-Datenbanksystem, PHP und andere erforderliche Abhängigkeiten auf Ihrem Server installieren. Sie können alle mit dem folgenden Befehl installieren:
apt install -y nginx mariadb-server php php-fpm php-common php-cli php-gd php-mysqlnd php-curl php-intl php-mbstring php-bcmath php-xml php-zip wget gitSobald alle Pakete installiert sind, überprüfen Sie die PHP-Version mit dem folgenden Befehl:
php -vSie sollten die folgende Ausgabe sehen:
PHP 8.1.2 (cli) (built: Apr 7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
Installieren Sie PHP Composer
Composer ist ein Abhängigkeitsmanager für PHP, der zur Verwaltung von PHP-Abhängigkeiten verwendet wird. Um den Composer zu installieren, müssen Sie das curl-Paket auf Ihrem Server installieren.
apt install -y curlInstallieren Sie dann den PHP Composer mit dem folgenden Befehl:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composerSobald Composer installiert ist, erhalten Sie die folgende Ausgabe:
Alle Einstellungen sind korrekt für die Verwendung von Composer
Herunterladen...
Composer (Version 2.3.5) erfolgreich installiert in: /usr/bin/composer
Verwenden Sie es: php /usr/bin/composer
Überprüfen Sie als Nächstes die Composer-Version mit dem folgenden Befehl:
composer --versionSie sollten die folgende Ausgabe erhalten:
Composer-Version 2.3.5 2022-04-13 16:43:00
Installieren Sie Laravel auf Ubuntu 22.04
Zuerst navigieren Sie zum Nginx-Webstammverzeichnis und laden die neueste Version von Laravel mit dem Composer-Befehl herunter:
cd /var/www/html
composer create-project laravel/laravel laravelSie erhalten die folgende Ausgabe:
55 Paketvorschläge wurden durch neue Abhängigkeiten hinzugefügt, verwenden Sie `composer suggest`, um Details zu sehen.
Generiere optimierte Autoload-Dateien
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Entdecktes Paket: laravel/sail
Entdecktes Paket: laravel/sanctum
Entdecktes Paket: laravel/tinker
Entdecktes Paket: nesbot/carbon
Entdecktes Paket: nunomaduro/collision
Entdecktes Paket: spatie/laravel-ignition
Paketmanifest erfolgreich generiert.
78 Pakete, die Sie verwenden, suchen nach Finanzierung.
Verwenden Sie den Befehl `composer fund`, um mehr zu erfahren!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
Keine veröffentlichbaren Ressourcen für das Tag [laravel-assets].
Veröffentlichung abgeschlossen.
> @php artisan key:generate --ansi
Anwendungsschlüssel erfolgreich gesetzt.
Ändern Sie als Nächstes das Verzeichnis zu Laravel und starten Sie Laravel mit dem folgenden Befehl:
cd laravel
php artisan serve --host 0.0.0.0 --port 8000Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:
Starte den Laravel-Entwicklungsserver: http://0.0.0.0:8000
[So 22. Mai 08:17:45 2022] PHP 8.1.2 Entwicklungsserver (http://0.0.0.0:8000) gestartet
Drücken Sie CTRL+C, um Laravel zu stoppen. Ändern Sie als Nächstes den Besitz und die Berechtigung von Laravel:
chown -R www-data:www-data /var/www/html/laravel
chmod -R 0777 /var/www/html/laravelKonfigurieren Sie Nginx für Laravel
Erstellen Sie als Nächstes eine Nginx-virtuelle Hostkonfigurationsdatei für Laravel mit dem folgenden Befehl:
nano /etc/nginx/conf.d/laravel.confFügen Sie die folgenden Zeilen hinzu:
server {
listen 80;
server_name laravel.example.com;
root /var/www/html/laravel/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Speichern und schließen Sie die Datei, wenn Sie fertig sind, und überprüfen Sie dann Nginx auf Syntaxfehler mit dem folgenden Befehl:
nginx -tSie sollten die folgende Ausgabe erhalten:
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf hat eine korrekte Syntax
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich
Starten Sie als Nächstes den Nginx- und PHP-FPM-Dienst neu, um die Änderungen anzuwenden:
systemctl restart php8.1-fpm nginxSie können auch den Status von Nginx mit dem folgenden Befehl überprüfen:
systemctl status nginxSie sollten die folgende Ausgabe sehen:
? nginx.service - Ein leistungsstarker Webserver und ein Reverse-Proxy-Server
Loaded: geladen (/lib/systemd/system/nginx.service; aktiviert; Hersteller-Voreinstellung: aktiviert)
Active: aktiv (laufend) seit So 2022-05-22 08:19:20 UTC; 17s ago
Docs: man:nginx(8)
Process: 16865 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 16866 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 16867 (nginx)
Tasks: 2 (limit: 2292)
Memory: 2.6M
CPU: 33ms
CGroup: /system.slice/nginx.service
??16867 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??16868 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "```
## Zugriff auf die Laravel-Weboberfläche
An diesem Punkt ist Laravel installiert und mit Nginx konfiguriert. Sie können jetzt die Laravel-Web-UI über die URL http://laravel.example.com aufrufen. Sie sollten das Laravel-Dashboard auf der folgenden Seite sehen:

## Sichern Sie Laravel mit Let's Encrypt
Als Nächstes müssen Sie das Certbot-Clientpaket installieren, um das Let's Encrypt SSL zu installieren und zu verwalten.
Zuerst installieren Sie Certbot mit dem folgenden Befehl:
apt-get install certbot python3-certbot-nginx -y
Sobald die Installation abgeschlossen ist, führen Sie den folgenden Befehl aus, um das Let's Encrypt SSL auf Ihrer Website zu installieren:
certbot –nginx -d laravel.example.com
Sie werden aufgefordert, eine gültige E-Mail-Adresse anzugeben und den Nutzungsbedingungen zuzustimmen, wie unten gezeigt:
Speichern des Debug-Protokolls in /var/log/letsencrypt/letsencrypt.log Ausgewählte Plugins: Authenticator nginx, Installer nginx Geben Sie die E-Mail-Adresse ein (verwendet für dringende Erneuerung und Sicherheitsbenachrichtigungen) (Geben Sie ‘c’ ein, um abzubrechen): [email protected]
Bitte lesen Sie die Nutzungsbedingungen unter https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Sie müssen zustimmen, um sich beim ACME-Server unter https://acme-v02.api.letsencrypt.org/directory zu registrieren
(A)kzeptieren/(C)ancel: A
Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des Let’s Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot entwickelt, zu teilen? Wir würden Ihnen gerne E-Mails über unsere Arbeit zum Verschlüsseln des Webs, EFF-Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit senden.
(J)a/(N)ein: Y Erhalte ein neues Zertifikat Durchführung der folgenden Herausforderungen: http-01-Herausforderung für laravel.example.com Warten auf Überprüfung… Bereinigung der Herausforderungen Zertifikat wird an VirtualHost /etc/nginx/conf.d/laravel.conf bereitgestellt
Wählen Sie als Nächstes, ob Sie den HTTP-Verkehr auf HTTPS umleiten möchten, wie unten gezeigt:
1: Keine Umleitung - Keine weiteren Änderungen an der Webserverkonfiguration vornehmen. 2: Umleitung - Alle Anfragen umleiten auf sicheren HTTPS-Zugriff. Wählen Sie dies für neue Websites oder wenn Sie sicher sind, dass Ihre Website auf HTTPS funktioniert. Sie können diese Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten.
Wählen Sie die entsprechende Nummer [1-2] und drücken Sie [Enter] (drücken Sie ‘c’, um abzubrechen): 2
Geben Sie 2 ein und drücken Sie Enter, um die Installation abzuschließen. Sie sollten die folgende Ausgabe sehen:
Umleitung aller Verkehr auf Port 80 zu ssl in /etc/nginx/conf.d/laravel.conf
Herzlichen Glückwunsch! Sie haben erfolgreich https://laravel.example.com aktiviert
Sie sollten Ihre Konfiguration testen unter: https://www.ssllabs.com/ssltest/analyze.html?d=laravel.example.com
WICHTIGE HINWEISE:
Herzlichen Glückwunsch! Ihr Zertifikat und die Kette wurden gespeichert unter: /etc/letsencrypt/live/laravel.example.com/fullchain.pem Ihre Schlüsseldatei wurde gespeichert unter: /etc/letsencrypt/live/laravel.example.com/privkey.pem Ihr Zertifikat läuft am 2022-08-22 ab. Um eine neue oder angepasste Version dieses Zertifikats in Zukunft zu erhalten, führen Sie einfach erneut certbot aus mit der Option “certonly”. Um nicht-interaktiv alle Ihrer Zertifikate zu erneuern, führen Sie “certbot renew” aus
Ihre Kontodaten wurden in Ihrem Certbot Konfigurationsverzeichnis unter /etc/letsencrypt gespeichert. Sie sollten jetzt ein sicheres Backup dieses Ordners erstellen. Dieses Konfigurationsverzeichnis wird auch Zertifikate und private Schlüssel enthalten, die von Certbot erhalten wurden, daher ist es ideal, regelmäßige Backups dieses Ordners zu machen.
Wenn Ihnen Certbot gefällt, ziehen Sie bitte in Betracht, unsere Arbeit zu unterstützen:
Spenden an ISRG / Let’s Encrypt: https://letsencrypt.org/donate Spenden an EFF: https://eff.org/donate-le
Wir konnten Sie nicht für die EFF-Newsletterliste anmelden, da Ihre E-Mail-Adresse ungültig zu sein scheint. Sie können es später erneut versuchen, indem Sie https://act.eff.org besuchen.
## Fazit
Herzlichen Glückwunsch! Sie haben Laravel erfolgreich mit Nginx auf Ubuntu 22.04 installiert. Sie können jetzt beginnen, leistungsstarke PHP-Anwendungen mit dem Laravel-Framework zu entwickeln. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.