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

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
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.
Ö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».

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?
Ö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:
cd app.exemple.com
php -v
composer installDie 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.
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:
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_baseDie 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.
php artisan key:generateErstellen Sie anschließend die Tabellen der Datenbank und speichern Sie dann die Konfiguration im Cache:
php artisan migrate
php artisan config:cacheFü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.
Ö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.
Befolgen Sie die Punkte in der Reihenfolge und stoppen Sie, sobald der Fehler verschwindet.
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 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.
APP_KEY= leer): Führen Sie php artisan key:generate im Terminal im Ordner der Subdomain aus.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.vendor fehlt: Führen Sie composer install im Ordner der Subdomain aus (Schritt 5).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.
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.
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.
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.
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.
Stellen Sie sie dem LWS-Team und der Community. Die Antwort wird nach Moderation veröffentlicht.