Procédure
Op LWS Panel is de map van een subdomein vastgelegd: /htdocs/app.exemple.com/ voor app.exemple.com, en deze kan niet naar de map public/ van Laravel wijzen. Om de Laravel-applicatie die u hebt ontwikkeld te publiceren, zet u het volledige project in deze map, voegt u in de root het bestand .htaccess toe dat bezoekers doorstuurt naar public/, installeert u de afhankelijkheden met Composer in de Terminal, en stelt u daarna het bestand .env in. Deze handleiding behandelt deze stappen en het zoeken naar de oorzaak van een 500-fout.
In het dashboard van uw hosting, rubriek « Domeinbeheer », opent u « Subdomeinen ». Bij « Subdomein toevoegen » typt u alleen het deel vóór het domein (bijvoorbeeld app), en klikt u vervolgens op « + toevoegen ». Het SSL-certificaat van het subdomein wordt in ongeveer 3 minuten gegenereerd: er verschijnt een aftelklok « Resterende tijd ».
De kolom « Map » geeft de map van het subdomein aan: app.exemple.com, dat wil zeggen /htdocs/app.exemple.com/. Er is geen veld om een andere map te kiezen. De details van dit scherm staan in de hulp Hoe subdomeinen aanmaken op LWS Panel?

Plaats het volledige project (mappen app, bootstrap, config, public, routes, storage, bestanden artisan en composer.json…) rechtstreeks in /htdocs/app.exemple.com/. Het bestand index.php van Laravel moet zich bevinden op /htdocs/app.exemple.com/public/index.php.
Met de Bestandsbeheerder (rubriek « Bestanden ») uploadt u een .zip-archief van het project via « Uploaden » (maximaal 1 125 MB per bestand), selecteert u het en klikt u op « Uitpakken ». Voor een zeer groot aantal bestanden is FTP-software geschikter. Als uw project op Git staat, kunt u het ook vanuit de Terminal klonen: zie Hoe GIT gebruiken met de webterminal op mijn gedeelde hosting?
Omdat de map van het subdomein niet naar public/ kan wijzen, zorgt een bestand .htaccess dat in de hoofdmap van /htdocs/app.exemple.com/ staat (naast de map public, niet erin) ervoor dat bezoekers naar public/ worden doorgestuurd. De inhoud ervan staat in de hulp Laravel installeren op een gedeelde LWS-hosting, onderdeel « Hoe configureer ik mijn Laravel-site correct? ».
Open in de Bestandsbeheerder de map van het subdomein, klik op « + Bestand » en noem het .htaccess. Klik vervolgens op de naam om het te openen in de « Code-editor », plak de inhoud en klik daarna op « Wijzigingen opslaan ».
Wijzig het bestand .htaccess dat zich al in public/ bevindt niet: dit wordt met Laravel meegeleverd en stuurt de aanvragen door naar index.php.
Open in de rubriek « Database & PHP » « PHP-configuratie ». Controleer in het tabblad « Installatie en selectie van PHP » of de gewenste versie is aangevinkt (bijvoorbeeld « PHP 8.5 + Ioncube (recommended) »). Kies vervolgens in het tabblad « PHP-configuratie per site » deze versie op de regel van uw subdomein en klik op « Opslaan ».

Als een balk aangeeft « Let op, u heeft .htaccess-bestand(en) gedeclareerd, wat de PHP-versie in uw klantenzone overschrijft », dan komt de PHP-versie van deze map uit een regel in het .htaccess-bestand waarvan het pad wordt weergegeven: het is die regel die u moet aanpassen. Meer details in Hoe configureer ik PHP op mijn hosting?
Open « Software » en vervolgens « Terminal ». De console start in de map ~/htdocs. Ga naar de map van het subdomein, toon de PHP-versie van de console en installeer vervolgens de projectafhankelijkheden:
cd app.exemple.com
php -v
composer installDe versie die door php -v wordt weergegeven, moet geschikt zijn voor uw versie van Laravel. Zo niet, wijzig dan de PHP-versie van de Terminal volgens Hoe de PHP-versie van de LWS Panel webterminal wijzigen.
Het bestand .env bevindt zich in de hoofdmap van het project (/htdocs/app.exemple.com/.env), niet in public/. Open het in de Bestandsbeheerder en stel minstens deze regels in met de waarden van uw site:
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_baseDe databasewaarden leest u af in « Database & PHP » en vervolgens « MySql & Phpmyadmin », op de regel van de database: kolom « Base » voor DB_DATABASE, « Gebruiker » voor DB_USERNAME en « Server-IP » voor DB_HOST (een IP-adres, geen localhost). Het wachtwoord wordt niet weergegeven: het is per e-mail verzonden bij het aanmaken van de database. Als het verloren is gegaan, wijzigt u het via het menu « ⋮ » en vervolgens « Wachtwoord wijzigen ».
In het .env-bestand van een nieuw Laravel 13-project staat de regel DB_CONNECTION op sqlite en beginnen de andere DB_-regels met een #: verwijder deze # en geef mysql op. Voor het verzenden van e-mails worden de MAIL_-regels uitgelegd in de hulp Laravel installeren op een gedeelde LWS-hosting.
Als de regel APP_KEY= leeg is, genereert u de toepassingssleutel in de Terminal, nog steeds in de map van het subdomein. Genereer deze niet opnieuw als ze al is ingevuld.
php artisan key:generateMaak vervolgens de tabellen van de database aan en cache daarna de configuratie:
php artisan migrate
php artisan config:cacheNa elke wijziging van het bestand .env voert u opnieuw php artisan config:cache uit: zodra de configuratie in de cache staat, leest Laravel het bestand .env niet meer opnieuw in.
Open https://app.exemple.com in uw browser: de startpagina van uw applicatie wordt weergegeven, samen met het slotje van het SSL-certificaat. Blader door enkele pagina's en controleer of de opmaak en afbeeldingen worden weergegeven.
Controleer ook of de projectbestanden niet vanaf internet leesbaar zijn: het adres https://app.exemple.com/composer.json moet een foutpagina van uw applicatie tonen, niet de inhoud van het bestand. Als de inhoud wordt weergegeven, ontbreekt het .htaccess-bestand uit stap 3 of staat het verkeerd geplaatst: corrigeer dit meteen.
Volg de punten in volgorde en stop zodra de fout verdwijnt.
Klik in de rubriek « Database & PHP » op « Apache PHP ModSecurity-logs »: de LWS Log Analyzer wordt geopend. Open het tabblad « PHP-fouten », kies uw subdomein in de lijst met domeinen en de periode, en vervolgens het filter « Fatal ». De kolommen « PHP-BESTAND », « REGEL » en « BERICHT » geven de oorzaak aan, en de knop « ✨ AI-diagnose » legt dit in eenvoudige taal uit.

Laravel schrijft zijn eigen fouten in het bestand storage/logs/laravel.log van het project. Open het in de Bestandsbeheerder en bekijk de laatste regels, op het tijdstip van de fout. Als er op dat moment niets staat, baseer u dan op het tabblad « PHP-fouten » van het vorige punt.
APP_KEY= leeg): voer php artisan key:generate uit in de Terminal, in de map van het subdomein.storage en bootstrap/cache niet schrijfbaar: Laravel moet erin kunnen schrijven. Controleer hun rechten met de knop « Machtigingen » van de Bestandsbeheerder.vendor ontbreekt: voer composer install uit in de map van het subdomein (stap 5).DB_HOST, DB_DATABASE, DB_USERNAME en DB_PASSWORD met de regel van de database in « MySql & Phpmyadmin », en voer daarna opnieuw php artisan config:cache uit.Voor andere oorzaken van een 500-fout, raadpleeg Hoe een 500-fout op uw site met LWS Panel op te lossen.
Nee. Op LWS Panel draagt de map van een subdomein zijn volledige naam (/htdocs/app.exemple.com/) en het scherm « Subdomeinen » laat niet toe een andere te kiezen. Daarom stuurt het .htaccess-bestand uit stap 3 bezoekers door naar public/.
Deze opdrachten worden uitgevoerd in de Terminal van LWS Panel (« Software » en vervolgens « Terminal »), of via SSH vanaf uw computer vanaf het Starter-pakket. Als de Terminal meldt « Om van deze tool gebruik te maken is het noodzakelijk over te stappen naar een hoger pakket », is deze niet inbegrepen in uw pakket. Het Domaine-pakket heeft geen PHP en geen database: Laravel werkt daar niet op.
De configuratie staat in de cache: voer opnieuw php artisan config:cache uit in de map van het subdomein, of wis deze cache met php artisan config:clear.
Haal de wijzigingen op via de Terminal, zoals uitgelegd in Hoe GIT gebruiken met de webterminal op mijn gedeelde hosting?, en voer daarna opnieuw composer install, php artisan migrate en php artisan config:cache uit in de map van het subdomein.
Stel ze aan het LWS-team en de community. Het antwoord wordt na moderatie gepubliceerd.