Een Laravel-applicatie publiceren op een subdomein met LWS Panel

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.

Uw applicatie publiceren in het subdomein

  1. Maak het subdomein aan

    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?

    Een Laravel-applicatie publiceren op een subdomein met LWS Panel

  2. Upload het Laravel-project naar de map van het subdomein

    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?

  3. Stuur bezoekers door naar de map public/

    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.

  4. Kies de PHP-versie van het subdomein

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

    Een Laravel-applicatie publiceren op een subdomein met LWS Panel

    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?

  5. Installeer de afhankelijkheden met Composer

    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:

    ⌨ Op de server
    cd app.exemple.com
    php -v
    composer install

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

  6. Stel het .env-bestand in

    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:

    ⌨ Op de server
    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

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

    ⌨ Op de server
    php artisan key:generate

    Maak vervolgens de tabellen van de database aan en cache daarna de configuratie:

    ⌨ Op de server
    php artisan migrate
    php artisan config:cache

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

Controleren of alles werkt

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.

Mijn applicatie geeft een 500-fout weer

Volg de punten in volgorde en stop zodra de fout verdwijnt.

Lees de exacte fout in de logs van het LWS Panel

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.

Een Laravel-applicatie publiceren op een subdomein met LWS Panel

Lees het Laravel-logbestand

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.

Los de meest voorkomende oorzaken op

  • Ontbrekende toepassingssleutel (regel APP_KEY= leeg): voer php artisan key:generate uit in de Terminal, in de map van het subdomein.
  • Mappen storage en bootstrap/cache niet schrijfbaar: Laravel moet erin kunnen schrijven. Controleer hun rechten met de knop « Machtigingen » van de Bestandsbeheerder.
  • Map vendor ontbreekt: voer composer install uit in de map van het subdomein (stap 5).
  • PHP-versie te oud voor uw Laravel-versie: wijzig deze (stap 4).
  • Fout verschenen net na het toevoegen of wijzigen van het .htaccess-bestand: zet de kopie terug die u had bewaard en vergelijk daarna uw bestand met dat in de hulp Laravel installeren op een gedeelde LWS-hosting.
  • Verbinden met de database geweigerd: vergelijk 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.

Veelgestelde vragen

Kan ik mijn subdomein rechtstreeks naar de map public/ laten wijzen?

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

Laat mijn pakket het gebruik van Composer en php artisan toe?

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.

Mijn wijzigingen in het .env-bestand worden niet meegenomen

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.

Hoe update ik mijn applicatie vanuit Git?

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.

Gerelateerde artikelen

Nuttige links

help.lws.net/a/7993
Was dit artikel nuttig?

Ja

Geen

2 keer gelezen

Bedankt! Stel gerust vragen over onze documentatie als u meer informatie wilt, en help ons die te verbeteren.

Vergelijkbare artikelen

Een vraag over dit artikel?

Stel ze aan het LWS-team en de community. Het antwoord wordt na moderatie gepubliceerd.

Stel een vraag aan het LWS-team en de gemeenschap

AVG: Verwerkingsverantwoordelijke: LWS-Ligne Web Services. Doel: moderatie en openbare publicatie van uw vraag, eventuele melding van een antwoord. Rechtsgrond: toestemming (art. 6, lid 1, a AVG). Bewaartermijn e-mailadressen: 90 dagen na de melding, maximaal 12 maanden zonder antwoord. Om uw rechten uit te oefenen, raadpleeg de AVG-sectie van onze algemene voorwaarden.