Wie man eine Laravel-Anwendung mit ISPConfig bereitstellt

Procédure

Die Bereitstellung einer Laravel-Anwendung auf einem VPS mit ISPConfig erfolgt durch die Konfiguration Ihrer Domain, der Website im Verwaltungsbereich und anschließend die Installation des Projekts per Kommandozeile mit einem dedizierten Konto. Laravel ist ein quelloffenes Web-Framework in PHP, das entwickelt wurde, um robuste und moderne Webanwendungen dank einer klaren und eleganten Architektur zu erstellen. Diese vollständige Anleitung führt Sie Schritt für Schritt bis zur Anzeige der sicheren Startseite über HTTPS, ohne dass Sie Root-Rechte auf dem Server verwenden müssen.

Die Schritte

  1. Den DNS-Eintrag für Ihre Domain oder Subdomain erstellen

    Gehen Sie zum Verwaltungsbereich Ihrer Domain, öffnen Sie den Reiter Zone DNS und erstellen Sie dann einen neuen Eintrag. Wählen Sie den Typ A, tragen Sie die gewünschte Subdomain ein (zum Beispiel laravel für laravel.learnlws.fr), geben Sie die IP-Adresse Ihres VPS-Servers ein (z. B. 203.0.113.10) und klicken Sie anschließend auf Ajouter.

    Wie man eine Laravel-Anwendung mit ISPConfig bereitstellt
  2. Auf die ISPConfig-Oberfläche über den Kundenbereich zugreifen

    Im LWS-Kundenbereich Ihres VPS finden Sie den Block Administration de votre serveur und klicken auf die Schaltfläche Panel d'administration, um sich mit ISPConfig zu verbinden.

    Wie man eine Laravel-Anwendung mit ISPConfig bereitstellt
  3. Die Website mit PHP-FPM und Let's Encrypt hinzufügen

    Navigieren Sie in ISPConfig zum Menü Sites und klicken Sie dann auf Add new website. Geben Sie Ihre vollständige Domain ein (z. B. laravel.learnlws.fr), wählen Sie bei Bedarf den Alias Auto-Subdomain, aktivieren Sie unbedingt die Kästchen SSL und Let's Encrypt SSL, setzen Sie das Feld PHP auf PHP-FPM, wählen Sie eine aktuelle PHP-Version und klicken Sie dann auf Save.

    Wie man eine Laravel-Anwendung mit ISPConfig bereitstellt
  4. Einen Shell-Benutzer für das Projekt erstellen

    Gehen Sie im linken Menü zum Abschnitt Command Line und klicken Sie auf SSH/SFTP-User, dann auf Add new SSH-User. Wählen Sie Ihre Website aus, geben Sie den Benutzernamen an (dem automatisch ein Präfix wie defaultlaravelapp vorangestellt wird), legen Sie ein sicheres Passwort fest, lassen Sie die Einstellung Chroot Shell auf None, damit die globalen PHP-Werkzeuge ausgeführt werden können, und klicken Sie dann auf Save.

    Wie man eine Laravel-Anwendung mit ISPConfig bereitstellt
  5. Die MySQL-Datenbank und ihren Benutzer erstellen

    Im linken Menü unter Databases legen Sie zunächst einen MySQL-Benutzer über Database Users mit einem starken Passwort an. Gehen Sie anschließend zu Databases, klicken Sie auf Add new Database, wählen Sie Ihre Website aus, benennen Sie die Datenbank und verknüpfen Sie den zuvor definierten MySQL-Benutzer, bevor Sie bestätigen.

  6. Per SSH verbinden und das Projekt mit Composer bereitstellen

    Öffnen Sie Ihr Terminal und verbinden Sie sich mit Ihrem Shell-Benutzer: ssh defaultlaravelapp@203.0.113.10. Prüfen Sie, ob Composer (der Standard-Abhängigkeitsmanager für PHP) mit dem Befehl composer -V verfügbar ist; falls er noch nicht vorhanden ist, laden Sie die ausführbare Datei direkt in Ihrem Konto herunter. Wechseln Sie in das Verzeichnis Ihres Webspace und initialisieren Sie das Projekt mit composer create-project laravel/laravel . (oder klonen Sie Ihr Git-Repository, bevor Sie composer install ausführen).

  7. Die .env-Datei konfigurieren, den Schlüssel erzeugen und die Datenbank migrieren

    Bearbeiten Sie die Datei .env im Stammverzeichnis Ihres Laravel-Projekts mit einem Editor wie nano: Setzen Sie APP_URL=https://laravel.learnlws.fr und vervollständigen Sie die MySQL-Parameter (DB_HOST=203.0.113.10, DB_DATABASE, DB_USERNAME, DB_PASSWORD). Starten Sie anschließend die Erzeugung des Verschlüsselungsschlüssels mit php artisan key:generate und führen Sie dann die Migrationen mit php artisan migrate aus, um die Tabellen zu erstellen.

  8. Das Web-öffentliche Verzeichnis und die Berechtigungen anpassen

    Laravel liefert seinen Einstiegspunkt aus seinem Unterverzeichnis public/. Passen Sie in ISPConfig die Apache-DocumentRoot-Anweisung Ihrer Website an, damit sie auf dieses Verzeichnis public/ verweist (oder verknüpfen Sie das Verzeichnis web/ mit public/), und setzen Sie anschließend die erforderlichen Schreibrechte für die Cache- und Log-Verzeichnisse, indem Sie chmod -R 775 storage bootstrap/cache ausführen.

  9. Die Funktion im Browser überprüfen

    Öffnen Sie Ihren Webbrowser und geben Sie die Adresse Ihrer Website ein (zum Beispiel https://laravel.learnlws.fr). Die standardmäßige Laravel-Startseite wird mit aktivem SSL-Sicherheits-Schloss angezeigt, was die vollständige erfolgreiche Installation bestätigt.

Wichtige Artisan-Befehle nach der Bereitstellung

Nach der Installation Ihrer Laravel-Anwendung erleichtern mehrere Befehle der Artisan-Konsole den Betrieb und die Wartung des Projekts.

  • php artisan key:generate — erzeugt den eindeutigen Verschlüsselungsschlüssel, der für die Sicherheit der Anwendung unerlässlich ist
  • php artisan migrate — wendet die Schemata an und erstellt alle Tabellen in Ihrer MySQL-Datenbank
  • php artisan config:cache — speichert die Konfigurationsdateien im Cache, um die Leistung in der Produktion zu verbessern
  • php artisan route:cache — optimiert das Laden Ihrer Anwendungsrouten für die Anfragen der Besucher

Häufig gestellte Fragen

Warum die Option 'None' für die Chroot Shell des Benutzers wählen?

Der Modus 'None' ermöglicht Ihrem Benutzer die Ausführung der globalen Debian-Systembinärdateien (insbesondere PHP CLI, Git und Composer). Eine klassische chroot-Umgebung schränkt den Zugriff ein und würde die normale Ausführung der Artisan- und Composer-Befehle blockieren.

Warum zeigt die Startseite nach der Bereitstellung einen 500-Fehler an?

Ein HTTP-500-Fehler entsteht in der Regel durch einen fehlenden Anwendungsschlüssel in der .env-Datei (führen Sie php artisan key:generate aus) oder durch unzureichende Berechtigungen für die Verzeichnisse storage und bootstrap/cache, die vom Webserver beschreibbar sein müssen.

Wie lässt sich ISPConfig direkt auf das öffentliche Unterverzeichnis von Laravel verweisen?

Sie können eine benutzerdefinierte Apache-Direktive in den Website-Optionen von ISPConfig einfügen, um das DocumentRoot auf /var/www/votresite.com/web/public umzuleiten, oder das Standardverzeichnis web durch einen symbolischen Link ersetzen, der auf das Verzeichnis public Ihres Projekts verweist.

Ist es notwendig, mit dem root-Konto auf den Server zuzugreifen?

Nein, sämtliche Vorgänge zur Dateiverwaltung, Installation von Composer-Abhängigkeiten, .env-Konfiguration und Artisan-Befehle werden vollständig mit dem Shell-Benutzer durchgeführt, der der in ISPConfig erstellten Website zugeordnet ist.

Das Let's-Encrypt-SSL-Zertifikat wird in ISPConfig nicht aktiviert, was tun?

Stellen Sie sicher, dass der DNS-Eintrag vom Typ A korrekt auf die IP-Adresse Ihres VPS zeigt und dass die Propagation abgeschlossen ist. Let's Encrypt prüft die Erreichbarkeit der Domain von außen, bevor das Zertifikat bestätigt und ausgestellt wird.

Nützliche Links

help.lws.net/a/7955
War dieser Artikel hilfreich?

Ja

Nicht

3 Mal gelesen

Vielen Dank! Stellen Sie gerne Fragen zu unserer Dokumentation, wenn Sie weitere Informationen wünschen, und helfen Sie uns, sie zu verbessern.

Ähnliche Artikel

Eine Frage zu diesem Artikel?

Stellen Sie sie dem LWS-Team und der Community. Die Antwort wird nach Moderation veröffentlicht.

Stellen Sie eine Frage an das LWS-Team und seine Gemeinschaft

DSGVO: Verantwortlicher: LWS-Ligne Web Services. Zweck: Moderation und öffentliche Veröffentlichung Ihrer Frage, gegebenenfalls Benachrichtigung über eine Antwort. Rechtsgrundlage: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO). Speicherdauer der E-Mail-Adressen: 90 Tage nach der Benachrichtigung, höchstens 12 Monate ohne Antwort. Zur Ausübung Ihrer Rechte siehe den DSGVO-Abschnitt unserer AGB.