Publicar una aplicación Laravel en un subdominio con LWS Panel

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.

Publicar su aplicación en el subdominio

  1. Cree el subdominio

    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?

    Publicar una aplicación Laravel en un subdominio con LWS Panel

  2. Envíe el proyecto Laravel a la carpeta del subdominio

    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?

  3. Envíe a los visitantes a la carpeta public/

    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.

  4. Elija la versión de PHP del subdominio

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

    Publicar una aplicación Laravel en un subdominio con LWS Panel

    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?

  5. Instale las dependencias con Composer

    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:

    ⌨ En el servidor
    cd app.exemple.com
    php -v
    composer install

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

  6. Configure el archivo .env

    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:

    📄 /htdocs/app.exemple.com/.env
    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

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

    ⌨ En el servidor
    php artisan key:generate

    Luego cree las tablas de la base de datos y después ponga la configuración en caché:

    ⌨ En el servidor
    php artisan migrate
    php artisan config:cache

    Despué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.

Comprobar que todo funciona

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.

Mi aplicación muestra un error 500

Siga los puntos en orden y deténgase en cuanto desaparezca el error.

Lea el error exacto en los registros de LWS Panel

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.

Publicar una aplicación Laravel en un subdominio con LWS Panel

Lea el registro de Laravel

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.

Corrija las causas más habituales

  • Clave de la aplicación ausente (línea APP_KEY= vacía): ejecute php artisan key:generate en el Terminal, en la carpeta del subdominio.
  • Carpetas 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.
  • Carpeta vendor ausente: ejecute composer install en la carpeta del subdominio (paso 5).
  • Versión de PHP demasiado antigua para su versión de Laravel: cámbiela (paso 4).
  • Error aparecido justo después de añadir o modificar el archivo .htaccess: restaure la copia que había guardado y compare su archivo con el de la ayuda Instalar Laravel en un alojamiento compartido LWS.
  • Conexión a la base denegada: compare 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.

Preguntas frecuentes

¿Puedo hacer que mi subdominio apunte directamente a la carpeta public/?

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

¿Mi tarifa me permite usar Composer y php artisan?

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.

Mis cambios en el archivo .env no se tienen en cuenta

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.

¿Cómo actualizar mi aplicación desde Git?

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.

Artículos relacionados

Enlaces útiles

help.lws.net/a/7993
¿Le ha resultado útil este artículo?

Sí

No

Leído 2 veces

¡Gracias! No dude en hacer preguntas sobre nuestra documentación si desea más información y ayudarnos a mejorarla.

Artículos similares

¿Tiene una pregunta sobre este artículo?

Hágala al equipo de LWS y a la comunidad. La respuesta se publica tras la moderación.

Formule una pregunta al equipo de LWS y a su comunidad

RGPD: Responsable: LWS-Ligne Web Services. Finalidad: moderación y publicación pública de su pregunta, posible aviso de una respuesta. Base jurídica: consentimiento (art. 6.1.a RGPD). Conservación de los correos: 90 días tras el aviso, 12 meses como máximo sin respuesta. Para ejercer sus derechos, consulte la sección RGPD de nuestras condiciones generales.