Laravel-Anwendung auf einer Subdomain mit LWS Panel veröffentlichen

Procédure

Im LWS Panel ist das Verzeichnis einer Subdomain vorgegeben: /htdocs/app.exemple.com/ für app.exemple.com, und es kann nicht auf das public/-Verzeichnis von Laravel zeigen. Um die von Ihnen entwickelte Laravel-Anwendung zu veröffentlichen, legen Sie das gesamte Projekt in dieses Verzeichnis, fügen Sie im Stammverzeichnis die Datei .htaccess hinzu, die Besucher zu public/ weiterleitet, installieren Sie die Abhängigkeiten mit Composer im Terminal und passen Sie dann die Datei .env an. Diese Hilfe beschreibt diese Schritte und die Suche nach der Ursache eines 500-Fehlers.

Ihre Anwendung in der Subdomain veröffentlichen

  1. Erstellen Sie die Subdomain

    Im Dashboard Ihres Hostings öffnen Sie im Bereich «Domainverwaltung» «Subdomains». In «Zu addierende Subdomain» geben Sie nur den Teil vor der Domain ein (zum Beispiel app) und klicken dann auf «+ ajout». Das SSL-Zertifikat der Subdomain wird in etwa 3 Minuten erstellt: Ein Countdown «Verbleibende Zeit» wird angezeigt.

    Die Spalte «Verzeichnis» zeigt den Ordner der Subdomain an: app.exemple.com, also /htdocs/app.exemple.com/. Es gibt kein Feld, um einen anderen Ordner auszuwählen. Einzelheiten zu diesem Bildschirm finden Sie in der Hilfe Wie erstellt man Subdomains im LWS Panel?

    Laravel-Anwendung auf einer Subdomain mit LWS Panel veröffentlichen

  2. Übertragen Sie das Laravel-Projekt in den Ordner der Subdomain

    Legen Sie das komplette Projekt (Ordner app, bootstrap, config, public, routes, storage, Dateien artisan und composer.json…) direkt in /htdocs/app.exemple.com/ ab. Die Datei index.php von Laravel muss sich unter /htdocs/app.exemple.com/public/index.php befinden.

    Mit dem Dateimanager (Bereich «Dateien») laden Sie ein .zip-Archiv des Projekts über «Hochladen» hoch (bis zu 1 125 Mo pro Datei), wählen es aus und klicken dann auf «Extrahieren». Bei einer sehr großen Anzahl von Dateien ist ein FTP-Programm besser geeignet. Wenn sich Ihr Projekt in Git befindet, können Sie es auch über das Terminal klonen: siehe Wie man GIT mit dem Web-Terminal auf meinem Shared Hosting von LWS verwendet

  3. Leiten Sie Besucher in den Ordner public/ weiter

    Da der Ordner der Subdomain nicht auf public/ zeigen kann, sorgt eine Datei .htaccess, die im Stammverzeichnis von /htdocs/app.exemple.com/ liegt (neben dem Ordner public, nicht darin), dafür, dass Besucher zu public/ weitergeleitet werden. Ihr Inhalt ist in der Hilfe Laravel auf einem LWS Shared Hosting installieren, Abschnitt «Wie konfiguriert man seine Laravel-Seite richtig?» angegeben.

    Öffnen Sie im Dateimanager den Ordner der Subdomain, klicken Sie auf «+ Fichier» und nennen Sie sie .htaccess. Klicken Sie dann auf ihren Namen, um sie im «Code-Editor» zu öffnen, fügen Sie den Inhalt ein und klicken Sie anschließend auf «Änderungen speichern».

    Ändern Sie nicht die Datei .htaccess, die sich bereits in public/ befindet: Sie wird mit Laravel mitgeliefert und leitet Anfragen an index.php weiter.

  4. Wählen Sie die PHP-Version der Subdomain

    Öffnen Sie im Bereich «Datenbank & PHP» «php-Konfiguration». Prüfen Sie im Reiter «PHP-Installation und -Auswahl», ob die gewünschte Version ausgewählt ist (zum Beispiel «PHP 8.5 + Ioncube (recommended)»). Wählen Sie im Reiter «PHP-Konfiguration pro Website» anschließend diese Version in der Zeile Ihrer Subdomain aus und klicken Sie dann auf «Speichern».

    Laravel-Anwendung auf einer Subdomain mit LWS Panel veröffentlichen

    Wenn ein Hinweisbanner anzeigt: «Achtung, Sie haben eine(n) .htaccess-Datei(en) deklariert, was die in Ihrem Kundenbereich angezeigte PHP-Version übersteigt», dann stammt die PHP-Version dieses Ordners aus einer Zeile der .htaccess-Datei, deren Pfad angezeigt wird: Diese Zeile müssen Sie ändern. Weitere Details in Wie konfiguriere ich PHP auf meinem Hosting?

  5. Installieren Sie die Abhängigkeiten mit Composer

    Öffnen Sie «Software» und dann «Terminal». Die Konsole startet im Ordner ~/htdocs. Wechseln Sie in den Ordner der Subdomain, zeigen Sie die PHP-Version der Konsole an und installieren Sie dann die Projektabhängigkeiten:

    ⌨ Auf dem Server
    cd app.exemple.com
    php -v
    composer install

    Die von php -v angezeigte Version muss zu Ihrer Laravel-Version passen. Andernfalls ändern Sie die PHP-Version des Terminals gemäß Wie man die PHP-Version des Web-Terminals im LWS Panel ändert.

  6. Passen Sie die Datei .env an

    Die Datei .env befindet sich im Stammverzeichnis des Projekts (/htdocs/app.exemple.com/.env), nicht in public/. Öffnen Sie sie im Dateimanager und setzen Sie mindestens diese Zeilen mit den Werten Ihrer Website:

    📄 /htdocs/app.exemple.com/.env
    APP_DEBUG=false
    APP_URL=https://app.exemple.com
    DB_CONNECTION=mysql
    DB_HOST=203.0.113.10
    DB_DATABASE=nom_de_la_base
    DB_USERNAME=utilisateur_de_la_base
    DB_PASSWORD=mot_de_passe_de_la_base

    Die Werte der Datenbank lesen Sie unter «Datenbank & PHP» und dann «MySql & Phpmyadmin» in der Zeile der Datenbank ab: Spalte «Base» für DB_DATABASE, «Utilisateur» für DB_USERNAME und «Ip serveur» für DB_HOST (eine IP-Adresse, nicht localhost). Das Passwort wird nicht angezeigt: Es wurde Ihnen bei der Erstellung der Datenbank per E-Mail zugesendet. Wenn es verloren gegangen ist, ändern Sie es über das Menü «⋮» und dann «Changer mot de passe».

    In der .env-Datei eines neuen Laravel-13-Projekts ist die Zeile DB_CONNECTION auf sqlite gesetzt und die anderen DB_-Zeilen beginnen mit einem #: Entfernen Sie diese # und geben Sie mysql an. Für den E-Mail-Versand werden die MAIL_-Zeilen in der Hilfe Laravel auf einem LWS Shared Hosting installieren erläutert.

    Wenn die Zeile APP_KEY= leer ist, generieren Sie den Anwendungsschlüssel im Terminal, immer im Ordner der Subdomain. Generieren Sie ihn nicht neu, wenn er bereits ausgefüllt ist.

    ⌨ Auf dem Server
    php artisan key:generate

    Erstellen Sie anschließend die Tabellen der Datenbank und speichern Sie dann die Konfiguration im Cache:

    ⌨ Auf dem Server
    php artisan migrate
    php artisan config:cache

    Führen Sie nach jeder Änderung der Datei .env erneut php artisan config:cache aus: Sobald die Konfiguration im Cache ist, liest Laravel die Datei .env nicht mehr erneut ein.

Prüfen, ob alles funktioniert

Öffnen Sie https://app.exemple.com in Ihrem Browser: Die Startseite Ihrer Anwendung wird mit dem Schloss des SSL-Zertifikats angezeigt. Durchsuchen Sie einige Seiten und prüfen Sie, ob die Formatierung und die Bilder angezeigt werden.

Prüfen Sie außerdem, dass die Projektdateien nicht vom Internet aus lesbar sind: Die Adresse https://app.exemple.com/composer.json sollte eine Fehlerseite Ihrer Anwendung anzeigen und nicht den Inhalt der Datei. Wenn der Inhalt angezeigt wird, fehlt die .htaccess-Datei aus Schritt 3 oder sie ist falsch platziert: Korrigieren Sie das sofort.

Meine Anwendung zeigt einen 500-Fehler an

Befolgen Sie die Punkte in der Reihenfolge und stoppen Sie, sobald der Fehler verschwindet.

Lesen Sie den genauen Fehler in den Protokollen des LWS Panels

Im Bereich «Datenbank & PHP» klicken Sie auf «Logs Apache PHP ModSecurity»: Das Tool LWS Log Analyzer wird geöffnet. Öffnen Sie den Reiter «PHP-Fehler», wählen Sie Ihre Subdomain in der Liste der Domains und den Zeitraum sowie den Filter «Fatal» aus. Die Spalten «PHP-DATEI», «ZEILE» und «NACHRICHT» geben die Ursache an, und die Schaltfläche «✨ KI-Diagnose» erklärt sie in einfacher Sprache.

Laravel-Anwendung auf einer Subdomain mit LWS Panel veröffentlichen

Lesen Sie das Laravel-Protokoll

Laravel schreibt seine eigenen Fehler in die Datei storage/logs/laravel.log des Projekts. Öffnen Sie sie im Dateimanager und sehen Sie sich die letzten Zeilen zur Fehlerzeit an. Wenn zu dieser Zeit nichts vorhanden ist, verlassen Sie sich auf den Reiter «PHP-Fehler» des vorherigen Punktes.

Beheben Sie die häufigsten Ursachen

  • Fehlender Anwendungsschlüssel (Zeile APP_KEY= leer): Führen Sie php artisan key:generate im Terminal im Ordner der Subdomain aus.
  • Die Ordner storage und bootstrap/cache sind nicht beschreibbar: Laravel muss dort schreiben können. Prüfen Sie ihre Berechtigungen mit der Schaltfläche «Berechtigungen» im Dateimanager.
  • Ordner vendor fehlt: Führen Sie composer install im Ordner der Subdomain aus (Schritt 5).
  • PHP-Version zu alt für Ihre Laravel-Version: Ändern Sie sie (Schritt 4).
  • Fehler direkt nach dem Hinzufügen oder Ändern der .htaccess-Datei: Stellen Sie die Kopie wieder her, die Sie aufbewahrt haben, und vergleichen Sie dann Ihre Datei mit derjenigen in der Hilfe Laravel auf einem LWS Shared Hosting installieren.
  • Datenbankverbindung verweigert: Vergleichen Sie DB_HOST, DB_DATABASE, DB_USERNAME und DB_PASSWORD mit der Zeile der Datenbank in «MySql & Phpmyadmin» und führen Sie dann erneut php artisan config:cache aus.

Für andere Ursachen eines 500-Fehlers lesen Sie Wie man einen 500-Fehler auf Ihrer Website mit LWS Panel behebt.

Häufig gestellte Fragen

Kann ich meine Subdomain direkt auf den Ordner public/ zeigen lassen?

Nein. Im LWS Panel trägt der Ordner einer Subdomain seinen vollständigen Namen (/htdocs/app.exemple.com/) und der Bildschirm «Subdomains» erlaubt es nicht, einen anderen auszuwählen. Deshalb leitet die .htaccess-Datei aus Schritt 3 Besucher zu public/ weiter.

Erlaubt mein Paket die Verwendung von Composer und php artisan?

Diese Befehle werden im Terminal des LWS Panels («Software» und dann «Terminal») oder per SSH von Ihrem Computer aus ab dem Starter-Paket ausgeführt. Wenn im Terminal angezeigt wird: «Um dieses Tool nutzen zu können, ist ein Wechsel auf ein höheres Paket erforderlich», ist es in Ihrem Paket nicht enthalten. Das Domain-Paket hat weder PHP noch eine Datenbank: Laravel funktioniert dort nicht.

Meine Änderungen an der .env-Datei werden nicht berücksichtigt

Die Konfiguration ist im Cache gespeichert: Führen Sie php artisan config:cache im Ordner der Subdomain erneut aus oder leeren Sie diesen Cache mit php artisan config:clear.

Wie aktualisiere ich meine Anwendung aus Git?

Holen Sie die Änderungen über das Terminal ab, wie in Wie man GIT mit dem Web-Terminal auf meinem LWS-Shared-Hosting verwendet erklärt, und führen Sie dann im Ordner der Subdomain erneut composer install, php artisan migrate und php artisan config:cache aus.

Verwandte Artikel

Nützliche Links

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

Ja

Nicht

2 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.