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

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

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?
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:
cd app.exemple.com
php -v
composer installLa 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.
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:
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_baseI 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.
php artisan key:generateCreate quindi le tabelle del database, poi mettete la configurazione in cache:
php artisan migrate
php artisan config:cacheDopo ogni modifica del file .env, rieseguite php artisan config:cache: una volta che la configurazione è in cache, Laravel non rilegge più il file .env.
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.
Seguite i punti nell'ordine e fermatevi non appena l'errore scompare.
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.

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.
APP_KEY= vuota): lanciate php artisan key:generate nel Terminale, nella cartella del sottodominio.storage e bootstrap/cache non scrivibili: Laravel deve poter scrivere al loro interno. Verificate i loro permessi con il pulsante «Permessi» del Gestore file.vendor assente: lanciate composer install nella cartella del sottodominio (fase 5).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.
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/.
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.
La configurazione è in cache: rieseguite php artisan config:cache nella cartella del sottodominio, oppure svuotate questa cache con php artisan config:clear.
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.
Ponila al team LWS e alla community. La risposta viene pubblicata dopo la moderazione.