Publicera en Laravel-applikation på en underdomän med LWS Panel

Procédure

På LWS Panel är mappen för en subdomän fastställd: /htdocs/app.exemple.com/ för app.exemple.com, och den kan inte peka mot Laravels mapp public/. För att publicera Laravel-applikationen du har utvecklat, lägg hela projektet i den här mappen, lägg till filen .htaccess i rotkatalogen så att besökare skickas vidare till public/, installera beroenden med Composer i Terminal, och konfigurera sedan filen .env. Den här hjälpen beskriver dessa steg och hur man söker orsaken till ett 500-fel.

Publicera din applikation i subdomänen

  1. Skapa subdomänen

    I kontrollpanelen för ditt webbhotell, under « Hantering av domän », öppna « Underdomäner ». I « Underdomän att lägga till », skriv endast delen före domänen (till exempel app) och klicka sedan på « + lägg till ». SSL-certifikatet för subdomänen skapas på cirka 3 minuter: en nedräkning med « Återstående tid » visas.

    Kolumnen « Katalog » visar mappen för subdomänen: app.exemple.com, det vill säga /htdocs/app.exemple.com/. Det finns inget fält för att välja en annan mapp. Mer om den här skärmen finns i hjälpen Hur skapar man underdomäner i LWS Panel?

    Publicera en Laravel-applikation på en underdomän med LWS Panel

  2. Ladda upp Laravel-projektet i subdomänens mapp

    Lägg hela projektet (mapparna app, bootstrap, config, public, routes, storage, filerna artisan och composer.json…) direkt i /htdocs/app.exemple.com/. Laravels fil index.php ska finnas på platsen /htdocs/app.exemple.com/public/index.php.

    Med filhanteraren (avsnittet « Filer ») laddar du upp ett .zip-arkiv med projektet via « Ladda upp » (max 1 125 Mo per fil), markerar det och klickar sedan på « Extrahera ». För ett mycket stort antal filer passar ett FTP-program bättre. Om ditt projekt finns på Git kan du också klona det från Terminal: se Hur använder man GIT med webbterminalen på mitt delade LWS-webbhotell?

  3. Skicka besökare till mappen public/

    Eftersom subdomänens mapp inte kan peka mot public/, är det en .htaccess-fil som placeras i roten av /htdocs/app.exemple.com/ (bredvid mappen public, inte inuti den) som omdirigerar besökare till public/. Dess innehåll finns i hjälpen Installera Laravel på ett delat LWS-webbhotell, avsnittet « Hur konfigurerar man sin Laravel-sajt korrekt? ».

    I filhanteraren öppnar du subdomänens mapp, klickar på « + Fil » och döper den till .htaccess. Klicka sedan på dess namn för att öppna den i « Kodredigeraren », klistra in innehållet och klicka därefter på « Spara ändringar ».

    Ändra inte filen .htaccess som redan finns i public/: den levereras med Laravel och skickar förfrågningar till index.php.

  4. Välj PHP-version för subdomänen

    Under avsnittet « Databas & PHP », öppna « PHP-konfiguration ». I fliken « Installation och val av PHP », kontrollera att önskad version är markerad (till exempel « PHP 8.5 + Ioncube (recommended) »). I fliken « PHP-konfiguration per webbplats » väljer du sedan den versionen på raden för din subdomän och klickar på « Spara ».

    Publicera en Laravel-applikation på en underdomän med LWS Panel

    Om en banner visar « Varning du har angett en/ett .htaccess-fil(er), vilket åsidosätter den PHP-version som visas i ditt kundkonto », kommer PHP-versionen för den här mappen från en rad i .htaccess-filen vars sökväg visas: det är den raden du måste ändra. Mer information i Hur konfigurerar jag PHP på mitt webbhotell?

  5. Installera beroenden med Composer

    Öppna « Programvara » och sedan « Terminal ». Konsolen startar i mappen ~/htdocs. Gå till subdomänens mapp, visa konsolens PHP-version och installera sedan projektets beroenden:

    ⌨ På servern
    cd app.exemple.com
    php -v
    composer install

    Versionen som visas av php -v måste passa din Laravel-version. Annars, ändra PHP-versionen i Terminal enligt Hur ändrar man PHP-versionen i LWS Panels webbterminal?

  6. Ställ in filen .env

    Filen .env finns i projektets rot (/htdocs/app.exemple.com/.env), inte i public/. Öppna den i filhanteraren och ställ minst in dessa rader med värdena för din webbplats:

    ⌨ På servern
    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

    Databasvärdena finns i « Databas & PHP » och sedan « MySql & Phpmyadmin », på databasens rad: kolumnen « Base » för DB_DATABASE, « User » för DB_USERNAME och « Server-IP » för DB_HOST (en IP-adress, inte localhost). Lösenordet visas inte: det skickades till dig via e-post när databasen skapades. Om det har förlorats kan du ändra det via menyn « ⋮ » och sedan « Ändra lösenord ».

    I .env-filen för ett nytt Laravel 13-projekt är raden DB_CONNECTION satt till sqlite och de andra DB_-raderna börjar med ett #: ta bort dessa # och ange mysql. För e-postutskick förklaras raderna MAIL_ i hjälpen Installera Laravel på ett delat LWS-webbhotell.

    Om raden APP_KEY= är tom, generera applikationsnyckeln i Terminal, fortfarande i subdomänens mapp. Generera inte om den om den redan är ifylld.

    ⌨ På servern
    php artisan key:generate

    Skapa sedan databasens tabeller och cacha konfigurationen:

    ⌨ På servern
    php artisan migrate
    php artisan config:cache

    Efter varje ändring i filen .env, kör php artisan config:cache igen: när konfigurationen väl har cachats läser Laravel inte längre filen .env.

Kontrollera att allt fungerar

Öppna https://app.exemple.com i din webbläsare: startsidan för din applikation visas med SSL-certifikatets hänglås. Bläddra igenom några sidor och kontrollera att formatering och bilder visas.

Kontrollera också att projektets filer inte går att läsa från internet: adressen https://app.exemple.com/composer.json ska visa en felsida från din applikation, inte filens innehåll. Om innehållet visas, saknas .htaccess-filen från steg 3 eller ligger fel: rätta till det omedelbart.

Min applikation visar ett 500-fel

Följ punkterna i ordning och sluta så snart felet försvinner.

Läs det exakta felet i loggarna i LWS Panel

Under avsnittet « Databas & PHP », klicka på « Apache PHP ModSecurity-loggar »: verktyget LWS Log Analyzer öppnas. Öppna fliken « PHP-fel », välj din subdomän i listan över domäner och tidsperioden, och sedan filtret « Fatal ». Kolumnerna « PHP-FIL », « RAD » och « MEDDELANDE » visar orsaken, och knappen « ✨ AI-diagnos » förklarar det på enkel svenska.

Publicera en Laravel-applikation på en underdomän med LWS Panel

Läs Laravels logg

Laravel skriver sina egna fel i filen storage/logs/laravel.log i projektet. Öppna den i filhanteraren och titta på de senaste raderna vid tiden för felet. Om det inte finns något där vid den tiden, förlita dig på fliken « PHP-fel » i föregående punkt.

Åtgärda de vanligaste orsakerna

  • Saknad applikationsnyckel (raden APP_KEY= är tom): kör php artisan key:generate i Terminal, i subdomänens mapp.
  • Mapparna storage och bootstrap/cache är inte skrivbara: Laravel måste kunna skriva där. Kontrollera deras rättigheter med knappen « Behörigheter » i filhanteraren.
  • Mappen vendor saknas: kör composer install i subdomänens mapp (steg 5).
  • PHP-versionen är för gammal för din Laravel-version: ändra den (steg 4).
  • Fel som uppstod direkt efter att .htaccess-filen lagts till eller ändrats: återställ kopian du sparade och jämför sedan din fil med den i hjälpen Installera Laravel på ett delat LWS-webbhotell.
  • Anslutningen till databasen nekas: jämför DB_HOST, DB_DATABASE, DB_USERNAME och DB_PASSWORD med databasraden i « MySql & Phpmyadmin », och kör sedan php artisan config:cache igen.

För andra orsaker till 500-fel, se Hur man åtgärdar ett 500-fel på din webbplats med LWS Panel.

Vanliga frågor

Kan jag låta min subdomän peka direkt mot mappen public/ ?

Nej. På LWS Panel har en subdomäns mapp sitt fullständiga namn (/htdocs/app.exemple.com/) och skärmen « Underdomäner » tillåter inte att man väljer en annan. Därför skickar .htaccess-filen i steg 3 besökare till public/.

Tillåter mitt paket användning av Composer och php artisan ?

Dessa kommandon körs i LWS Panels Terminal (« Programvara » och sedan « Terminal »), eller via SSH från din dator från och med paketet Starter. Om Terminalen visar « För att dra nytta av detta verktyg måste du byta till ett högre paket », ingår det inte i ditt paket. Paketet Domaine har varken PHP eller databas: Laravel fungerar inte där.

Mina ändringar i filen .env tas inte med

Konfigurationen är cachad: kör php artisan config:cache igen i subdomänens mapp, eller töm cachen med php artisan config:clear.

Hur uppdaterar jag min applikation från Git?

Hämta ändringarna från Terminal, som förklaras i Hur använder man GIT med webbterminalen på mitt delade LWS-webbhotell?, och kör sedan composer install, php artisan migrate och php artisan config:cache i subdomänens mapp.

Relaterade artiklar

Användbara länkar

help.lws.net/a/7993
Var den här artikeln till hjälp?

Ja

Nej

Läst 2 gånger

Tack! Ställ gärna frågor om vår dokumentation om du vill ha mer information och hjälp oss att förbättra den.

Liknande artiklar

En fråga om den här artikeln?

Ställ den till LWS-teamet och communityn. Svaret publiceras efter moderering.

Ställ en fråga till AWS-teamet och dess community

GDPR: Personuppgiftsansvarig: LWS-Ligne Web Services. Ändamål: moderering och offentlig publicering av din fråga, eventuellt meddelande om ett svar. Rättslig grund: samtycke (art. 6.1 a GDPR). Lagring av e-postadresser: 90 dagar efter meddelandet, högst 12 månader utan svar. För att utöva dina rättigheter, se GDPR-avsnittet i våra allmänna villkor.