El despliegue de aplicaciones Laravel en entornos de hosting compartido o dedicado marca la culminación de una etapa crucial en el desarrollo de aplicaciones web. Este proceso, a diferencia de entornos locales, plantea desafíos adicionales, que incluyen la transferencia de archivos, la configuración de entornos, ajustes en la base de datos, aspectos de seguridad y la necesidad de optimizar la aplicación para asegurar su correcto funcionamiento. ¡Hola y bienvenidos de nuevo al curso de Laravel intermedio!
¡Empecemos!
¿Qué es un hosting compartido?
Un Hosting compartido es un servicio de alojamiento en la nube que permite que varias páginas o aplicaciones web compartan los recursos de un mismo servidor físico (RAM, CPU, Almacenamiento, etc.).
Ventajas de un hosting compartido
- El costo de adquirir es mucho más económico en comparación con otras alternativas de hosting.
- Los hosting compartidos incluyen programas y herramientas ya configurados y listos para su uso, esto facilita el trabajo.
- El proveedor del servicio se encarga del mantenimiento y la administración del servidor.
Desventajas de un hosting compartido
- El rendimiento de la aplicación se ve afectado por otros sitios web que consumen los mismos recursos.
- Las aplicaciones web están limitadas a consumir los recursos del servidor.
- No tienes el control sobre la configuración del servidor.
Proceso de Despliegue en Laravel
Para subir nuestra aplicación a un servidor compartido. En mi caso, utilizaré la plataforma de A2 Hosting, la cual proporciona herramientas como Cpanel, PHPMyAdmin, Apache y PHP, lo cual es más que adecuado para alojar nuestro proyecto Laravel. Sin embargo, pueden optar por cualquier otro proveedor de alojamiento web, como Bluehost, Hostinger, GoDaddy, entre otros, ya que la mayoría cuenta con las herramientas necesarias para aplicaciones PHP.
Configuración del Servidor para Laravel
Iniciemos el proceso de subir y configurar nuestra aplicación a un servidor compartido. En primer lugar, comenzaremos por crear un dominio donde subir la aplicación.
Crear subdominio en el servidor
Comenzaremos por crear un subdominio que es una extensión del nombre del dominio principal, para manejar de manera independiente la aplicación “cursos-online” con otros proyectos que puedas tener (si en tu caso quieres subirlo al dominio principal, el proceso es el mismo).
En Cpanel, ubicamos la sección “Dominios” y, al acceder, creamos el subdominio “cursos-online.norvicsoftware.com”.

Configuración de la base de datos en el servidor
En el servidor, ingresamos al panel de control (Cpanel) y nos dirigimos a la sección “MySQL Databases”. Una vez allí, creamos una nueva base de datos llamada “curso_db”.

El siguiente paso es asignar un usuario a la base de datos creada. Dentro de la misma ventana en la opción “Add User To Database” seleccionamos el usuario “laravel_victor” como la base de datos ‘cursos_db’ para establecer la conexión (Es importante contar con un usuario administrador de la base de datos; en caso de no tenerlo, se debe crear uno previamente).

Subir los archivos de la aplicación el servidor
En nuestra aplicación local de desarrollo vamos a comprimir todos los archivos, excluyendo la carpeta “vendor”. En el servidor vamos a subir la carpeta comprimida en el directorio “/cursos-online.norvicsoftware.com” del administrador de archivos. (la carpeta correspondiente al subdominio creado previamente).

Ahora vamos a descomprimir el archivo “archive.zip” que contiene todas las carpetas y archivos de la aplicación.

Configuración del archivo .env en el servidor
Abrimos el archivo de configuración .env en el servidor y realizamos los siguientes cambios (el archivo está configurado actualmente para nuestro entorno local).
APP_ENV=production APP_DEBUG=false DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_curso_online DB_USERNAME=laravel_victor DB_PASSWORD=12345
Los campos “DB_USERNAME” y “DB_PASSWORD” son del usuario de base de datos creados en el servidor.

A continuación, desde la Terminal de nuestro servidor, en la ruta del proyecto “/cursos-online.norvicsoftware.com”, ejecutamos el siguiente comando. Este descargará los paquetes necesarios (generar la carpeta Vendor) para que la aplicación funcione correctamente en nuestro entorno de servidor.
cd cursos-online.norvicsoftware.com/
composer update

Ahora vamos a generar una nueva clave de aplicación “APP_KEY”. Esta clave es utilizada para cifrar las cookies y otros datos sensibles que se almacenan de forma segura en la aplicación. Ejecutamos el siguiente comando:
php artisan key:generate

En este paso, procederemos a ejecutar las migraciones para crear las tablas y campos necesarios en la base de datos. Simultáneamente, ejecutaremos los seeders para poblar la base de datos con datos de prueba. Ejecutamos el siguiente comando:
php artisan migrate --seed

Configuración del archivo .htaccess
El archivo .htaccess se utiliza para configurar directivas específicas del servidor web. Este archivo proporciona reglas y configuraciones que afectan el comportamiento, el acceso a los directorios y archivos del servidor web. Con el archivo .htaccess apuntaremos al directorio “public/index.php” de nuestra aplicación (index.php es el punto de entrada principal de la aplicación). Creamos el archivo .htaccess.

En el archivo .htaccess escribimos el siguiente código:
<IfModule mod_rewrite.c>
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteEngine on RewriteCond %{REQUEST_URI} !^public RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Guardamos los cambios realizados.

Ya terminamos de instalar y configurar nuestro servidor compartido. Ahora, para poner a prueba nuestra aplicación Laravel, abrimos el navegador Chrome y escribimos la siguiente dirección URL: https://cursos-online.norvicsoftware.com/profesores. Si la configuración es correcta, verás el listado completo de profesores.

El despliegue proyecto Laravel a hosting compartido es un proceso que se lleva a cabo desde la configuración inicial hasta la prueba final. La correcta implementación en el servidor asegura la disponibilidad continua de la aplicación, permitiendo que los usuarios finales tengan una experiencia satisfactoria.
Con esto ya concluimos nuestro curso “cursos-online”, aún se puede optimizar y mejorar bastante el código, pero esta base te proporcionará un sólido punto de partida para tus futuros proyectos en Laravel. En próximas clases veremos más funcionalidades de este maravilloso framework de PHP.
Recuerda que puedes descargar todo el código fuente en el repositorio de GitHub totalmente gratis.
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.
Pingback: Reportes Excel en Laravel - Norvic Software