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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
Después de instalar su aplicación Laravel, varios comandos de la consola Artisan facilitan la explotación y el mantenimiento del proyecto.
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.
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.
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.
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.
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.
Hágala al equipo de LWS y a la comunidad. La respuesta se publica tras la moderación.