Procédure
En LWS Panel, la carpeta de un subdominio está impuesta: /htdocs/app.exemple.com/ para app.exemple.com, y no puede apuntar a la carpeta public/ de Laravel. Para publicar la aplicación Laravel que ha desarrollado, coloque todo el proyecto en esta carpeta, añada en su raíz el archivo .htaccess que envía a los visitantes a public/, instale las dependencias con Composer en el Terminal y luego configure el archivo .env. Esta ayuda detalla estos pasos y la búsqueda de la causa de un error 500.
En el panel de control de su alojamiento, sección «Gestión del dominio», abra «Subdominios». En «Subdominio a añadir», escriba solo la parte que precede al dominio (por ejemplo app) y luego haga clic en «+ añadir». El certificado SSL del subdominio se genera en unos 3 minutos: aparece una cuenta atrás «Tiempo restante».
La columna «Directorio» indica la carpeta del subdominio: app.exemple.com, es decir, /htdocs/app.exemple.com/. No hay ningún campo que permita elegir otra carpeta. El detalle de esta pantalla está en la ayuda ¿Cómo crear subdominios en LWS Panel?

Coloque el proyecto completo (carpetas app, bootstrap, config, public, routes, storage, archivos artisan y composer.json…) directamente en /htdocs/app.exemple.com/. El archivo index.php de Laravel debe encontrarse en la ubicación /htdocs/app.exemple.com/public/index.php.
Con el Administrador de archivos (sección «Archivos»), envíe un archivo .zip del proyecto mediante «Cargar» (1 125 Mo como máximo por archivo), selecciónelo y luego haga clic en «Extraer». Para un número muy grande de archivos, un software FTP es más adecuado. Si su proyecto está en Git, también puede clonarlo desde el Terminal: vea ¿Cómo utilizar GIT con el terminal Web en mi alojamiento compartido LWS?
Como la carpeta del subdominio no puede apuntar a public/, es un archivo .htaccess situado en la raíz de /htdocs/app.exemple.com/ (junto a la carpeta public, no dentro) el que redirige a los visitantes hacia public/. Su contenido se proporciona en la ayuda Instalar Laravel en un alojamiento compartido LWS, parte «¿Cómo configurar correctamente su sitio Laravel? ».
En el Administrador de archivos, abra la carpeta del subdominio, haga clic en «+ Archivo» y asígnele el nombre .htaccess. Luego haga clic en su nombre para abrirlo en el «Editor de código», pegue el contenido y después haga clic en «Guardar los cambios».
No modifique el archivo .htaccess que ya se encuentra en public/: se incluye con Laravel y envía las solicitudes a index.php.
En la sección «Base de datos & PHP», abra «Configuración php». En la pestaña «Instalación y selección de PHP», compruebe que la versión deseada está marcada (por ejemplo «PHP 8.5 + Ioncube (recommended)»). En la pestaña «Configuración PHP por sitios», elija luego esta versión en la línea de su subdominio y haga clic en «Guardar».

Si un aviso indica «Atención, ha declarado uno o varios archivos .htaccess, lo que sustituye la versión PHP mostrada en su área de cliente», la versión de PHP de esta carpeta proviene de una línea del archivo .htaccess cuya ruta se muestra: esa es la línea que debe modificar. Más detalles en ¿Cómo configurar PHP en mi alojamiento?
Abra «Software» y luego «Terminal». La consola arranca en la carpeta ~/htdocs. Sitúese en la carpeta del subdominio, muestre la versión de PHP de la consola y luego instale las dependencias del proyecto:
cd app.exemple.com
php -v
composer installLa versión mostrada por php -v debe ser compatible con su versión de Laravel. Si no, cambie la versión de PHP del Terminal siguiendo Cómo cambiar la versión PHP del Terminal Web LWS Panel.
El archivo .env se encuentra en la raíz del proyecto (/htdocs/app.exemple.com/.env), no en public/. Ábralo en el Administrador de archivos y configure al menos estas líneas con los valores de su sitio:
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_baseLos valores de la base se consultan en «Base de datos & PHP» y luego en «MySql & Phpmyadmin», en la línea de la base: columna «Base» para DB_DATABASE, «Usuario» para DB_USERNAME e «Ip servidor» para DB_HOST (una dirección IP, no localhost). La contraseña no se muestra: se le envió por correo electrónico al crear la base. Si la ha perdido, cámbiela mediante el menú «⋮» y luego «Cambiar contraseña».
En el archivo .env de un proyecto nuevo de Laravel 13, la línea DB_CONNECTION vale sqlite y las demás líneas DB_ comienzan por un #: elimine esos # e indique mysql. Para el envío de correos electrónicos, las líneas MAIL_ se explican en la ayuda Instalar Laravel en un alojamiento compartido LWS.
Si la línea APP_KEY= está vacía, genere la clave de la aplicación en el Terminal, siempre en la carpeta del subdominio. No la regenere si ya está cumplimentada.
php artisan key:generateLuego cree las tablas de la base de datos y después ponga la configuración en caché:
php artisan migrate
php artisan config:cacheDespués de cada modificación del archivo .env, vuelva a ejecutar php artisan config:cache: una vez la configuración está en caché, Laravel ya no vuelve a leer el archivo .env.
Abra https://app.exemple.com en su navegador: se muestra la página de inicio de su aplicación, con el candado del certificado SSL. Navegue por algunas páginas y compruebe que el formato y las imágenes se muestran.
Compruebe también que los archivos del proyecto no se pueden leer desde Internet: la dirección https://app.exemple.com/composer.json debe mostrar una página de error de su aplicación, y no el contenido del archivo. Si se muestra el contenido, el archivo .htaccess del paso 3 está ausente o mal colocado: corríjalo de inmediato.
Siga los puntos en orden y deténgase en cuanto desaparezca el error.
En la sección «Base de datos & PHP», haga clic en «Logs Apache PHP ModSecurity»: se abre la herramienta LWS Log Analyzer. Abra la pestaña «Errores PHP», elija su subdominio en la lista de dominios y el período, y luego el filtro «Fatal». Las columnas «FICHERO PHP», «LÍNEA» y «MENSAJE» indican la causa, y el botón «✨ Diagnóstico IA» la explica en lenguaje sencillo.

Laravel escribe sus propios errores en el archivo storage/logs/laravel.log del proyecto. Ábralo en el Administrador de archivos y mire las últimas líneas, a la hora del error. Si no hay nada a esa hora, fíjese en la pestaña «Errores PHP» del punto anterior.
APP_KEY= vacía): ejecute php artisan key:generate en el Terminal, en la carpeta del subdominio.storage y bootstrap/cache no accesibles en escritura: Laravel debe poder escribir en ellas. Compruebe sus permisos con el botón «Permisos» del Administrador de archivos.vendor ausente: ejecute composer install en la carpeta del subdominio (paso 5).DB_HOST, DB_DATABASE, DB_USERNAME y DB_PASSWORD con la línea de la base en «MySql & Phpmyadmin» y luego vuelva a ejecutar php artisan config:cache.Para otras causas del error 500, consulte Cómo corregir un error 500 en su sitio con LWS Panel.
No. En LWS Panel, la carpeta de un subdominio lleva su nombre completo (/htdocs/app.exemple.com/) y la pantalla «Subdominios» no permite elegir otra. Por eso el archivo .htaccess del paso 3 envía a los visitantes a public/.
Estos comandos se ejecutan en el Terminal de LWS Panel («Software» y luego «Terminal»), o por SSH desde su ordenador a partir de la tarifa Starter. Si el Terminal muestra «Para beneficiarse de esta herramienta es necesario pasar a una tarifa superior», no está incluido en su tarifa. La tarifa Domaine no incluye ni PHP ni base de datos: Laravel no funciona en ella.
La configuración está en caché: vuelva a ejecutar php artisan config:cache en la carpeta del subdominio, o vacíe esa caché con php artisan config:clear.
Recupere los cambios desde el Terminal, como se explica en ¿Cómo utilizar GIT con el terminal Web en mi alojamiento compartido LWS?, y luego vuelva a ejecutar composer install, php artisan migrate y php artisan config:cache en la carpeta del subdominio.
Hágala al equipo de LWS y a la comunidad. La respuesta se publica tras la moderación.