Pubblicare un’applicazione Laravel in un sottodominio con LWS Panel

Procédure

Su LWS Panel, la cartella di un sottodominio è imposta: /htdocs/app.exemple.com/ per app.exemple.com, e non può puntare alla cartella public/ di Laravel. Per pubblicare l'applicazione Laravel che avete sviluppato, caricate l'intero progetto in questa cartella, aggiungete alla sua radice il file .htaccess che invia i visitatori verso public/, installate le dipendenze con Composer nel Terminale, quindi configurate il file .env. Questa guida illustra questi passaggi e la ricerca della causa di un errore 500.

Pubblicare la vostra applicazione nel sottodominio

  1. Create il sottodominio

    Nella dashboard del vostro hosting, sezione «Gestione del dominio», aprite «Sottodomini». In «Sottodominio da aggiungere», digitate solo la parte che precede il dominio (ad esempio app), poi cliccate su «+ aggiungi». Il certificato SSL del sottodominio viene generato in circa 3 minuti: appare un conto alla rovescia «Tempo rimanente».

    La colonna «Directory» indica la cartella del sottodominio: app.exemple.com, cioè /htdocs/app.exemple.com/. Nessun campo permette di scegliere un'altra cartella. I dettagli di questa schermata sono nella guida Come creare sottodomini su LWS Panel?

    Pubblicare un’applicazione Laravel in un sottodominio con LWS Panel

  2. Caricate il progetto Laravel nella cartella del sottodominio

    Caricate il progetto completo (cartelle app, bootstrap, config, public, routes, storage, file artisan e composer.json…) direttamente in /htdocs/app.exemple.com/. Il file index.php di Laravel deve trovarsi nel percorso /htdocs/app.exemple.com/public/index.php.

    Con il Gestore file (sezione «File»), caricate un archivio .zip del progetto tramite «Carica» (massimo 1 125 Mo per file), selezionatelo e poi cliccate su «Estrai». Per un numero molto elevato di file, un software FTP è più adatto. Se il vostro progetto è su Git, potete anche clonarlo dal Terminale: vedere Come usare GIT con il terminale Web sul mio hosting condiviso LWS?

  3. Reindirizzate i visitatori verso la cartella public/

    Poiché la cartella del sottodominio non può puntare a public/, è un file .htaccess collocato nella radice di /htdocs/app.exemple.com/ (accanto alla cartella public, non dentro) che reindirizza i visitatori verso public/. Il suo contenuto è fornito nella guida Installare Laravel su un hosting condiviso LWS, parte «Come configurare correttamente il proprio sito Laravel?».

    Nel Gestore file, aprite la cartella del sottodominio, cliccate su «+ File» e denominatelo .htaccess. Cliccate quindi sul suo nome per aprirlo nell'«Editor di codice», incollate il contenuto, poi cliccate su «Salva le modifiche».

    Non modificate il file .htaccess già presente in public/: è fornito con Laravel e invia le richieste a index.php.

  4. Scegliete la versione di PHP del sottodominio

    Nella sezione «Database & PHP», aprite «Configurazione php». Nella scheda «Installazione e selezione di PHP», verificate che la versione desiderata sia selezionata (ad esempio «PHP 8.5 + Ioncube (recommended)»). Nella scheda «Configurazione PHP per siti», scegliete poi questa versione sulla riga del vostro sottodominio, quindi cliccate su «Salva».

    Pubblicare un’applicazione Laravel in un sottodominio con LWS Panel

    Se un banner indica «Attenzione avete dichiarato uno/più file .htaccess, il che supera la versione PHP visualizzata nel vostro spazio cliente», la versione di PHP di questa cartella proviene da una riga del file .htaccess il cui percorso è visualizzato: è questa riga che occorre modificare. Maggiori dettagli in Come configurare PHP sul mio hosting?

  5. Installate le dipendenze con Composer

    Aprite «Software» poi «Terminale». La console si avvia nella cartella ~/htdocs. Spostatevi nella cartella del sottodominio, visualizzate la versione di PHP della console, quindi installate le dipendenze del progetto:

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

    La versione mostrata da php -v deve essere adatta alla vostra versione di Laravel. In caso contrario, cambiate la versione di PHP del Terminale seguendo Come cambiare la versione PHP del Terminale Web LWS Panel.

  6. Configurate il file .env

    Il file .env si trova alla radice del progetto (/htdocs/app.exemple.com/.env), non in public/. Apritelo nel Gestore file e configurate almeno queste righe con i valori del vostro sito:

    ⌨ Sul 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

    I valori del database si leggono in «Database & PHP» poi «MySql & Phpmyadmin», sulla riga del database: colonna «Base» per DB_DATABASE, «Utente» per DB_USERNAME e «Ip server» per DB_HOST (un indirizzo IP, non localhost). La password non è visualizzata: vi è stata inviata via e-mail alla creazione del database. Se è stata smarrita, cambiatela dal menu «⋮» poi «Cambia password».

    Nel file .env di un nuovo progetto Laravel 13, la riga DB_CONNECTION vale sqlite e le altre righe DB_ iniziano con un #: rimuovete questi # e indicate mysql. Per l'invio delle e-mail, le righe MAIL_ sono spiegate nella guida Installare Laravel su un hosting condiviso LWS.

    Se la riga APP_KEY= è vuota, generate la chiave dell'applicazione nel Terminale, sempre nella cartella del sottodominio. Non rigeneratela se è già compilata.

    ⌨ Sul server
    php artisan key:generate

    Create quindi le tabelle del database, poi mettete la configurazione in cache:

    ⌨ Sul server
    php artisan migrate
    php artisan config:cache

    Dopo ogni modifica del file .env, rieseguite php artisan config:cache: una volta che la configurazione è in cache, Laravel non rilegge più il file .env.

Verificare che tutto funzioni

Aprite https://app.exemple.com nel vostro browser: la pagina iniziale della vostra applicazione viene visualizzata, con il lucchetto del certificato SSL. Navigate in alcune pagine e verificate che la formattazione e le immagini vengano mostrate.

Verificate anche che i file del progetto non siano leggibili da Internet: l'indirizzo https://app.exemple.com/composer.json deve mostrare una pagina di errore della vostra applicazione, e non il contenuto del file. Se il contenuto viene visualizzato, il file .htaccess del punto 3 è assente o posizionato male: correggetelo subito.

La mia applicazione mostra un errore 500

Seguite i punti nell'ordine e fermatevi non appena l'errore scompare.

Leggete l'errore esatto nei registri di LWS Panel

Nella sezione «Database & PHP», cliccate su «Log Apache PHP ModSecurity»: si apre lo strumento LWS Log Analyzer. Aprite la scheda «Errori PHP», scegliete il vostro sottodominio nell'elenco dei domini e il periodo, poi il filtro «Fatal». Le colonne «FILE PHP», «RIGA» e «MESSAGGIO» indicano la causa, e il pulsante «✨ Diagnosi IA» la spiega in linguaggio semplice.

Pubblicare un’applicazione Laravel in un sottodominio con LWS Panel

Leggete il registro di Laravel

Laravel scrive i propri errori nel file storage/logs/laravel.log del progetto. Apritelo nel Gestore file e guardate le ultime righe, all'ora dell'errore. Se a quell'ora non c'è nulla, affidatevi alla scheda «Errori PHP» del punto precedente.

Correggete le cause più comuni

  • Chiave dell'applicazione assente (riga APP_KEY= vuota): lanciate php artisan key:generate nel Terminale, nella cartella del sottodominio.
  • Cartelle storage e bootstrap/cache non scrivibili: Laravel deve poter scrivere al loro interno. Verificate i loro permessi con il pulsante «Permessi» del Gestore file.
  • Cartella vendor assente: lanciate composer install nella cartella del sottodominio (fase 5).
  • Versione di PHP troppo vecchia per la vostra versione di Laravel: cambiatela (fase 4).
  • Errore comparso subito dopo l'aggiunta o la modifica del file .htaccess: ripristinate la copia che avevate conservato, quindi confrontate il vostro file con quello della guida Installare Laravel su un hosting condiviso LWS.
  • Connessione al database rifiutata: confrontate DB_HOST, DB_DATABASE, DB_USERNAME e DB_PASSWORD con la riga del database in «MySql & Phpmyadmin», quindi rieseguite php artisan config:cache.

Per le altre cause di errore 500, consultate Come correggere un errore 500 sul vostro sito con LWS Panel.

Domande frequenti

Posso far puntare il mio sottodominio direttamente alla cartella public/ ?

No. Su LWS Panel, la cartella di un sottodominio porta il suo nome completo (/htdocs/app.exemple.com/) e la schermata «Sottodomini» non consente di sceglierne un'altra. Per questo il file .htaccess della fase 3 invia i visitatori verso public/.

La mia formula consente di usare Composer e php artisan?

Questi comandi si avviano nel Terminale di LWS Panel («Software» poi «Terminale»), oppure in SSH dal vostro computer a partire dalla formula Starter. Se il Terminale mostra «Per beneficiare di questo strumento è necessario passare a una formula superiore», non è incluso nella vostra formula. La formula Dominio non ha né PHP né database: Laravel non funziona su di essa.

Le modifiche al file .env non vengono prese in considerazione

La configurazione è in cache: rieseguite php artisan config:cache nella cartella del sottodominio, oppure svuotate questa cache con php artisan config:clear.

Come aggiornare la mia applicazione da Git?

Recuperate le modifiche dal Terminale, come spiegato in Come usare GIT con il terminale Web sul mio hosting condiviso LWS?, poi rieseguite composer install, php artisan migrate e php artisan config:cache nella cartella del sottodominio.

Articoli correlati

Link utili

help.lws.net/a/7993
Questo articolo ti è stato utile?

Sì

No

Letto 2 volte

Grazie! Non esitare a porre domande sulla nostra documentazione se desideri maggiori informazioni e aiutarci a migliorarla.

Articoli simili

Una domanda su questo articolo?

Ponila al team LWS e alla community. La risposta viene pubblicata dopo la moderazione.

Fate una domanda al team LWS e alla sua comunità

GDPR: Titolare: LWS-Ligne Web Services. Finalità: moderazione e pubblicazione della tua domanda, eventuale notifica di una risposta. Base giuridica: consenso (art. 6.1.a GDPR). Conservazione delle e-mail: 90 giorni dopo la notifica, massimo 12 mesi senza risposta. Per esercitare i tuoi diritti, consulta la sezione GDPR delle nostre condizioni generali.