Cómo desplegar una aplicación Laravel con ISPConfig

Procédure

El despliegue de una aplicación Laravel en un VPS con ISPConfig se realiza configurando su dominio, el sitio web en el panel de gestión y, después, instalando el proyecto por línea de comandos con una cuenta dedicada. Laravel es un framework web de código abierto en PHP diseñado para crear aplicaciones web robustas y modernas gracias a una arquitectura clara y elegante. Este procedimiento completo le guía paso a paso hasta la visualización de la página de inicio segura en HTTPS, sin necesidad de utilizar los permisos root del servidor.

Los pasos

  1. Crear el registro DNS para su dominio o subdominio

    Vaya a la sección de gestión de su dominio, abra la pestaña Zona DNS y cree una nueva entrada. Elija el tipo A, indique el subdominio deseado (por ejemplo laravel para laravel.learnlws.fr), introduzca la dirección IP de su servidor VPS (p. ej. 203.0.113.10) y haga clic en Añadir.

    Cómo desplegar una aplicación Laravel con ISPConfig
  2. Acceder a la interfaz ISPConfig desde el espacio de cliente

    Desde el espacio de cliente LWS de su VPS, localice el bloque Administración de su servidor y haga clic en el botón Panel de administración para conectarse a ISPConfig.

    Cómo desplegar una aplicación Laravel con ISPConfig
  3. Añadir el sitio web con PHP-FPM y Let's Encrypt

    En ISPConfig, vaya al menú Sites y haga clic en Add new website. Introduzca su dominio completo (p. ej. laravel.learnlws.fr), seleccione el alias Auto-Subdomain si es necesario, marque obligatoriamente las casillas SSL y Let's Encrypt SSL, establezca el campo PHP en PHP-FPM, elija una versión reciente de PHP y haga clic en Save.

    Cómo desplegar una aplicación Laravel con ISPConfig
  4. Crear un usuario Shell para el proyecto

    En el menú de la izquierda, vaya a la sección Command Line y haga clic en SSH/SFTP-User, luego en Add new SSH-User. Seleccione su sitio web, indique el nombre de usuario (que irá precedido por un prefijo automático como defaultlaravelapp), especifique una contraseña segura, deje el parámetro Chroot Shell en None para permitir la ejecución global de las herramientas PHP y haga clic en Save.

    Cómo desplegar una aplicación Laravel con ISPConfig
  5. Crear la base de datos MySQL y su usuario

    En el menú de la izquierda, bajo Databases, comience añadiendo un usuario MySQL mediante Database Users y asígnele una contraseña fuerte. A continuación, vaya a Databases, haga clic en Add new Database, seleccione su sitio, nombre la base de datos y vincule el usuario MySQL que acaba de definir antes de validar.

  6. Conectarse por SSH y desplegar el proyecto con Composer

    Abra su terminal y conéctese con su usuario shell: ssh defaultlaravelapp@203.0.113.10. Compruebe que Composer (el gestor de dependencias estándar para PHP) está disponible mediante el comando composer -V; si aún no está presente, descargue su ejecutable directamente en su cuenta. Sitúese en el directorio de su alojamiento e inicialice el proyecto con composer create-project laravel/laravel . (o clone su repositorio Git antes de ejecutar composer install).

  7. Configurar el archivo .env, generar la clave y migrar la base de datos

    Edite el archivo .env en la raíz de su proyecto Laravel con un editor como nano: defina APP_URL=https://laravel.learnlws.fr y complete los parámetros MySQL (DB_HOST=203.0.113.10, DB_DATABASE, DB_USERNAME, DB_PASSWORD). A continuación, ejecute la generación de la clave de cifrado con php artisan key:generate y luego ejecute las migraciones con php artisan migrate para crear las tablas.

  8. Ajustar la carpeta public web y los permisos

    Laravel distribuye su punto de entrada desde su subcarpeta public/. En ISPConfig, adapte la directiva de document root de Apache de su sitio web para que apunte a esta carpeta public/ (o enlace la carpeta web/ a public/) y, a continuación, aplique los permisos de escritura indispensables en las carpetas de caché y registros ejecutando chmod -R 775 storage bootstrap/cache.

  9. Verificar el funcionamiento en el navegador

    Abra su navegador web e introduzca la dirección de su sitio (por ejemplo https://laravel.learnlws.fr). La página de inicio predeterminada de Laravel se mostrará con el candado de seguridad SSL activo, confirmando el éxito completo de la instalación.

Comandos Artisan indispensables después del despliegue

Después de instalar su aplicación Laravel, varios comandos de la consola Artisan facilitan la explotación y el mantenimiento del proyecto.

  • php artisan key:generate — genera la clave de cifrado única indispensable para la seguridad de la aplicación
  • php artisan migrate — aplica los esquemas y crea todas las tablas en su base de datos MySQL
  • php artisan config:cache — almacena en caché los archivos de configuración para acelerar el rendimiento en producción
  • php artisan route:cache — optimiza la carga de las rutas de su aplicación para las solicitudes de los visitantes

Preguntas frecuentes

¿Por qué elegir la opción 'None' para el Chroot Shell del usuario?

El modo 'None' permite a su usuario ejecutar los binarios globales del sistema Debian (en particular PHP CLI, Git y Composer). Un entorno chroot clásico restringiría los accesos y bloquearía la ejecución normal de los comandos Artisan y Composer.

¿Por qué la página de inicio muestra un error 500 después del despliegue?

Un error HTTP 500 suele deberse a una clave de aplicación ausente en el archivo .env (ejecute php artisan key:generate) o a permisos insuficientes en las carpetas storage y bootstrap/cache, que deben ser accesibles en escritura por el servidor web.

¿Cómo hacer que ISPConfig apunte directamente a la subcarpeta public de Laravel?

Puede insertar una directiva Apache personalizada en las opciones del sitio web en ISPConfig para redefinir el DocumentRoot hacia /var/www/votresite.com/web/public, o sustituir la carpeta estándar web por un enlace simbólico que apunte a la carpeta public de su proyecto.

¿Es necesario acceder al servidor con la cuenta root?

No, todas las operaciones de gestión de archivos, instalación de dependencias Composer, configuración .env y comandos Artisan se realizan íntegramente con el usuario shell vinculado al sitio web creado en ISPConfig.

El certificado SSL Let's Encrypt no se activa en ISPConfig, ¿qué hacer?

Asegúrese de que el registro DNS de tipo A apunta correctamente a la dirección IP de su VPS y de que la propagación ha finalizado. Let's Encrypt verifica la accesibilidad del dominio desde el exterior antes de validar y emitir el certificado.

Enlaces útiles

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

Sí

No

Leído 3 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.