Despliegue proyecto Laravel a hosting compartido

Despliegue proyecto Laravel a hosting compartido

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

Desplegar tu proyecto Laravel a producción

Adquiere la guía en formato PDF

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

Crear el dominio hosting Laravel

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

Crear base de datos en servidor Laravel

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

Agregar usuario a la base de datos laravel

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

Subir la aplicación Laravel al servidor

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

Descomprimir aplicación Laravel en Servidor

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.

Configuración del archivo env en Laravel

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
Composer hosting compartido Laravel

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
Artisan hosting compartido Laravel

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
Ejecutar migraciones Laravel hosting compartido

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.

Archivo htaccess hosting Laravel

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.

Configuración archivo htaccess laravel servidor

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.

Despliegue proyecto Laravel hosting compartido

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

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.

1 comentario en “Despliegue proyecto Laravel a hosting compartido”

  1. Pingback: Reportes Excel en Laravel - Norvic Software

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *