Cómo crear un proyecto en Laravel con un servidor privado virtual en 2024

Laravel es un framework de aplicaciones web PHP de código abierto. Sus conjuntos de herramientas, bibliotecas y características ayudan a mejorar la eficiencia del desarrollo, ya que los usuarios no necesitan codificar toda la funcionalidad desde cero.

Este framework popular cuenta con una gran comunidad de desarrolladores, lo que mejora el soporte y la disponibilidad de recursos. Sin embargo, los principiantes pueden no estar seguros de cómo desplegar Laravel debido a sus diversas dependencias y comandos.

En este tutorial, te explicaremos cómo instalar Laravel en un servidor virtual privado (VPS) Ubuntu. Esta guía de despliegue de Laravel también explorará varios consejos que ayudan a simplificar el proceso. 

Requisitos previos para desplegar Laravel

Antes de empezar con Laravel, adquiere un plan de alojamiento en servidor privado virtual. A la hora de elegir el mejor plan y proveedor de alojamiento VPS para tu proyecto, ten en cuenta estos aspectos:

  • Compatibilidad: tu VPS debe ser compatible con el sistema operativo elegido, el servidor web, Laravel, la última versión de PHP y otras dependencias para funcionar correctamente.
  • Acceso: el servidor anfitrión debe proporcionar acceso root completo a través de una conexión shell segura (SSH) para permitir un despliegue de Laravel seguro y sin problemas.
  • Rendimiento: el entorno de hosting VPS ideal debe proporcionar suficiente ancho de banda y recursos de servidor para garantizar que la aplicación Laravel tenga un rendimiento óptimo.
  • Funciones adicionales: algunos proveedores de alojamiento web tienen funciones que ayudan a simplificar el proceso de despliegue de aplicaciones, como un panel de control y un instalador con un solo clic.

Los planes de alojamiento VPS de Hostinger son compatibles con varias distribuciones de Linux, software y frameworks, incluido Laravel.

Además, los usuarios de Hostinger pueden configurar su servidor en un clic a través de hPanel utilizando la plantilla del sistema operativo. Este viene pre empaquetado con varios programas y sus dependencias para simplificar el proceso de despliegue.

Vista general de VPS de hPanel

Además, todos nuestros planes VPS proporcionan acceso root completo para evitar problemas relacionados con los permisos.

Los usuarios también pueden utilizar nuestro terminal de navegador integrado para conectarse a su servidor remoto. Es más cómodo que un cliente SSH, ya que puedes ejecutar comandos de Linux directamente desde tu navegador web.

A partir de CO$ 20900.00 al mes, nuestra solución VPS ofrece hasta 400 GB de almacenamiento NVMe, 8 TB de ancho de banda, 32 GB de RAM y 8 núcleos vCPU, adecuados para proyectos empresariales a gran escala. 

Además, todos nuestros planes incluyen una garantía de devolución del dinero de 30 días.

Cómo crear un proyecto en Laravel

Para los usuarios de Hostinger, la forma más sencilla de crear un proyecto de Laravel en un VPS es utilizando una plantilla del sistema operativo. Este método es accesible a través del navegador web, por lo que es ideal para principiantes no familiarizados con la interfaz de línea de comandos.

¡Importante! Haz una copia de seguridad de tu VPS antes de instalar una plantilla de sistema operativo, ya que borrará permanentemente todos los datos de tu servidor.

Estos son los pasos para instalar Laravel en el VPS de Hostinger utilizando una plantilla:

  1. Accede a hPanel y haz clic en VPS en el menú superior.
  2. Selecciona el plan de alojamiento VPS en el que quieres instalar Laravel.
  3. En la barra lateral, haz clic en Configuración Sistema operativo y Panel Sistema operativo.
  4. En la sección Cambiar tu sistema operativo, haz clic en Aplicaciones.
  5. Selecciona Ubuntu 22.04 con Laravel en el menú desplegable. Haz clic en Cambiar sistema operativo para confirmar.
Cambio de SO en hPanel
  1. Aparecerá una ventana de confirmación sobre la eliminación de datos. Marca la casilla después de leer la advertencia y haz clic en Siguiente.
  2. Introduce una nueva contraseña para el panel de control del alojamiento. Haz clic en Confirmar para continuar.

Ya está. Una vez completado el proceso de instalación, haz clic en la URL de inicio de sesión en Acceso Strapi y deberías ver la pantalla de bienvenida de Laravel. La plantilla también configurará automáticamente CloudPanel para desplegar una aplicación.

Para ello, haz clic en la URL de acceso a CloudPanel e inicia sesión como administrador. Haz clic en tu dominio VPS Administrador de archivos Añadir nuevo Subir archivo. Selecciona los archivos de tu proyecto y haz clic en Abrir.

Panel de control de CloudPanel

Dado que el despliegue a través del panel de control puede ser poco fiable, recomendamos utilizar otros métodos como Git. Hablaremos de ello más adelante en la siguiente sección.

Ten en cuenta que no puedes elegir un software diferente al instalar Laravel utilizando la plantilla VPS. Si prefieres otro sistema operativo o tu proyecto requiere software adicional, considera el método manual.

Cómo desplegar un proyecto Laravel manualmente

En esta sección, explicaremos los pasos para desplegar Laravel manualmente en un alojamiento VPS con Ubuntu 22.04. Dependiendo de la distribución y versión de Linux, los comandos pueden variar.

1. Prepara el servidor para Laravel

Comienza el despliegue instalando las dependencias para preparar el entorno de alojamiento. Puedes utilizar una aplicación SSH como PuTTY, Terminal o la terminal del Navegador de Hostinger.

Accede a tu servidor utilizando el usuario root. En Hostinger VPS, accede a las credenciales yendo a hPanel VPS en el menú superior. A continuación, navega hasta tu plan VPS y dirígete a Visión general → pestaña Acceso SSH.

Vista general de VPS en hPanel

¡Importante! En lugar de root, recomendamos crear una nueva cuenta con privilegios de superusuario para evitar la ejecución accidental de comandos dañinos. 

Los requisitos de Laravel incluyen un servidor web, una base de datos, bases de datos PHP y Composer. También necesitarás otro software como Git para enviar los archivos de la aplicación desde tu ordenador local a la máquina remota. Estos son los pasos:

  1. Actualiza tu repositorio del gestor de paquetes APT utilizando este comando:
sudo apt update && sudo apt upgrade
  1. Instala el servidor web. En este tutorial, utilizaremos Apache:
sudo apt install -y apache2
  1. Ejecuta este comando para configurar PHP y sus extensiones:
sudo apt install -y php php-cli php-fpm php-mysql php-xml php-mbstring
  1. Configura una base de datos. Instalaremos MySQL utilizando el siguiente comando:
sudo apt install -y mysql-server
  1. Instala Composer para gestionar las dependencias de Laravel utilizando este comando:
sudo apt install -y composer
  1. Introduce este comando para configurar el sistema de control de versiones Git:
sudo apt install -y git

Si no quieres configurar manualmente el servidor de producción, adquiere Laravel Forge. A partir de 12.99 dólares al mes, esta plataforma proporciona un área centralizada para instalar y gestionar todas las aplicaciones necesarias para tu proyecto.

2. Despliega la aplicación

Crea un host virtual para tu proyecto Laravel configurando un archivo de configuración del servidor web con el editor de texto nano. Para Apache, ejecuta el siguiente comando:

sudo nano /etc/apache2/sites-available/laravel.conf

Dentro del archivo, escribe la siguiente configuración. Asegúrate de sustituir los marcadores de directorio por la ruta real y eldominio.com por la dirección IP de tu servidor:

<VirtualHost *:80>
   ServerName thedomain.com
ServerAdmin webmaster@thedomain.com
   DocumentRoot /var/www/html/test-laravel/public
   <Directory /var/www/html/test-laravel/public>
      AllowOverride All
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

¡Importante! El contenido del archivo de configuración será diferente si utilizas otro servidor web como NGINX.

Despliega el código del proyecto de aplicación Laravel desde tu repositorio Git ejecutando estos comandos en serie. Sustituye la URL por el enlace real:

cd /var/www/html
sudo git clone https://github.com/your_username/test-laravel.git

Si no has enviado los archivos de tu proyecto Laravel a un repositorio, lee nuestro tutorial sobre Git para aprender más sobre cómo hacerlo.

Para desplegar los archivos del proyecto, puedes utilizar métodos como la utilidad rsync o una aplicación de protocolo seguro de transferencia de archivos (SFTP). Sin embargo, recomendamos el control de versiones en el despliegue de Laravel por comodidad y seguridad.

Navega hasta la ruta del directorio de tu proyecto y ejecuta composer install para configurar las dependencias:

cd test-laravel
sudo composer install

Si Terminal devuelve mensajes de error, intenta ejecutar el comando composer update. Añade también la opción -ignore-platform-req=ext-curl para ver si se resuelve el problema.

3. Configura el archivo .env

Cuando creas una aplicación Laravel, Composer generará una plantilla de archivo .env.example. Almacena configuraciones específicas del entorno, determinando diversas variables para tus aplicaciones, como la información de la base de datos.

Para configurar un archivo .env para tu proyecto Laravel, copia la plantilla de abajo y ábrela con nano:

sudo cp .env.example .env
sudo nano .env

La configuración de este archivo utiliza la sintaxis del par KEY=VALUE. Por ejemplo, la siguiente entrada determina la contraseña del usuario de la base de datos Laravel:

DB_PASSWORD=tu_contraseña

Para cambiar la configuración, borra el valor y sustitúyelo por uno nuevo. Pulsa Ctrl + X, Y y Enter para guardar los cambios.

Base de datos Laravel

Por defecto, Laravel establecerá el DB_USERNAME como root y dejará vacío el DB_PASSWORD. Sin embargo, podría causar un error cuando ejecutes PHP artisan, la utilidad de línea de comandos del framework, para la migración de la base de datos.

Para resolverlo, cambia la contraseña raíz por defecto y actualiza el valor DB_PASSWORD en consecuencia. Además, te recomendamos que crees una base de datos no predeterminada y usuarios específicos de tu proyecto actual para facilitar la gestión.

Consejo profesional

Consulta nuestro tutorial para saber más sobre cómo configurar tu usuario, contraseña y permisos de MySQL en Ubuntu.

4. Ejecuta la aplicación

Para iniciar tu aplicación Laravel, haz ejecutable la carpeta del proyecto cambiando los permisos y la propiedad:

sudo chown -R www-data /var/www/html/test-laravel
sudo chmod -R 755 /var/www/html/test-laravel/storage

Ejecuta PHP artisan para generar la clave de aplicación e iniciar la migración de la base de datos. Estos son los comandos:

sudo php artisan key:generate
sudo php artisan migrate

Siempre que modifiques el esquema de la base de datos, actualiza los archivos de migración para mantener una configuración coherente para tu aplicación. Consulta la guía de migración de Laravel para obtener más información al respecto.

Desactiva el archivo de configuración por defecto del host virtual en Apache mediante el siguiente comando:

sudo a2dissite 000-default.conf

Habilita el nuevo host virtual y el módulo de reescritura mediante estos comandos:

sudo a2ensite laravel.conf
sudo a2enmod rewrite

Reinicia Apache utilizando el comando systemctl:

sudo systemctl restart apache2

Una vez finalizado el proceso de despliegue, introduce la dirección IP o el nombre de dominio de tu VPS en un navegador web para comprobar si la aplicación funciona correctamente. Si los archivos están vacíos, deberías ver la página de bienvenida de Laravel.

página de bienvenida de Laravel

Trucos y consejos para el despliegue de Laravel

En esta sección, hablaremos de buenas prácticas para crear un proyecto en Laravel para ayudar a agilizar el proceso.

Utiliza la configuración de caché en Laravel

El framework Laravel te permite almacenar datos de acceso frecuente como caché. Esto reduce el tiempo necesario para obtener la información y descargar las consultas a la base de datos, mejorando el rendimiento de tu aplicación web.

También proporciona varios backends y drivers de caché. Los usuarios pueden elegir el que mejor se adapte a sus necesidades y configurarlo fácilmente mediante la clave CACHE_DRIVER del archivo .env.

Framework Laravel

Si no especificas el controlador de caché, Laravel utilizará file por defecto. Alternativamente, puedes establecerlo en array, database, redis o memcached.

Para activar la caché, añade el método a la base de código de tu aplicación. Por ejemplo, escribe Cache::put() para almacenar datos durante un tiempo determinado:

Cache::put(‘key’, ‘value’, $minutes);

Mientras tanto, utiliza el método Cache:rememberForever() para almacenar la caché indefinidamente:

Cache::rememberForever( ‘key’, function);

Este framework proporciona muchos métodos de almacenamiento en caché para diferentes propósitos, como recuperar, eliminar o incrementar los datos almacenados. Para saber más sobre ellos, consulta la documentación sobre almacenamiento en caché de Laravel.

Para gestionar la caché, puedes ejecutar los comandos PHP artisan en el directorio de trabajo de tu proyecto. Por ejemplo, introduce lo siguiente para eliminar los datos almacenados:

php artisan cache:clear

Utiliza herramientas de despliegue automático de Laravel

Automatizar el despliegue de Laravel ayuda a ahorrar tiempo y esfuerzo, ya que sin ello el proceso implica muchos pasos. Existen varias herramientas y plataformas para esta tarea.

Puedes utilizar servicios de integración continua/despliegue continuo (CI/CD) como GitHub Actions o software como Jenkins. Estos te permiten automatizar un proceso de despliegue personalizado de Laravel.

Para configurar la automatización en acciones de GitHub, crea un archivo .yml en el directorio de tu proyecto. Define el flujo de trabajo y su evento desencadenante, como empujar los cambios a la rama principal. A continuación, escribe las tareas, los pasos y las variables de entorno. 

Por ejemplo, puedes hacer que cada vez que un usuario introduzca nuevos cambios de código en la rama principal, el archivo .yml ejecute automáticamente el comando artisan de PHP para generar la clave de la aplicación y reiniciar tu servidor web.

Utiliza el Asistente con IA VPS de Hostinger para una implementación más sencilla

Hostinger proporciona un Asistente con IA VPS gratuito que ayuda a mejorar tu eficiencia de despliegue. Puedes aprender a crear proyectos de Laravel en Hostinger y generar rápidamente instrucciones y comandos para cualquier tarea utilizando los prompts de IA para la gestión del VPS.

Por ejemplo, dile al Asistente AI: «Quiero desplegar una aplicación Laravel en mi servidor Ubuntu utilizando Git. Explícame los pasos y genera los comandos para esta tarea». Te devolverá una respuesta completa y podrás seguir la guía y copiar y pegar los comandos generados.

Asistente VPS con IA de Hostinger

También puedes utilizar el Asistente con IA para ayudar a solucionar errores durante el proceso de despliegue de Laravel. 

Por ejemplo: «Estoy desplegando una aplicación Laravel en un servidor Ubuntu. Sin embargo, he encontrado un error al ejecutar el comando artisan de PHP para migrar la base de datos. Explícame las posibles causas y soluciones».

Para acceder a esta función, abre la página de configuración de tu VPS en hPanel y selecciona el Asistente con IA en la barra lateral.

¡Importante! Como con cualquier herramienta de IA, te recomendamos que pruebes siempre primero los pasos y comandos generados en un entorno de desarrollo para evitar accidentes que puedan dañar tu servidor en vivo.

Utiliza una gestión adecuada de la dependencia

Composer permite a los desarrolladores definir las dependencias de sus aplicaciones en el archivo composer.json. Además de simplificar el proceso de instalación, también mejora la estabilidad del entorno y la eficacia del control de versiones.

Ejecuta el comando composer update para obtener todos los parches de dependencia especificados en el archivo. Sin embargo, asegúrate de revisar las nuevas versiones antes de hacerlo para evitar problemas de incompatibilidad o actualizaciones destructivas.

Para acceder al archivo, navega hasta el directorio raíz de tu proyecto Laravel. Normalmente, se encuentra dentro de la ruta var/www/html/test-laravel.

Interfaz de Composer.json

El archivo composer.json sólo se aplica a un entorno concreto. Para garantizar una estructura de proyecto limpia y eficiente, mantén una documentación detallada de la configuración de dependencias de cada aplicación o componente.

Actualizar regularmente las dependencias del proyecto te asegura recibir los últimos parches de seguridad y correcciones de errores. También ayuda a evitar problemas de incompatibilidad y conflictos de versión que podrían perjudicar la funcionalidad de tu aplicación.

Optimiza el rendimiento de Laravel

La optimización del rendimiento de Laravel ayuda a mejorar la capacidad de respuesta y la escalabilidad de la aplicación. Si ejecutas servicios orientados al consumidor, también puede ayudar a mejorar la experiencia del usuario y la percepción de la marca.

Existen varios métodos para optimizar el rendimiento de Laravel en un VPS Ubuntu. Aquí tienes algunos de ellos:

  1. Habilita el almacenamiento en caché: Laravel proporciona backends y dispositivos de caché para almacenar datos solicitados con frecuencia en un almacenamiento temporal. Esto ayuda a reducir la carga del servidor y las consultas a la base de datos.
  2. Configura una red de distribución de contenidos (CDN): una CDN almacena en caché contenido estático en múltiples servidores de todo el mundo, ayudando a garantizar que tu aplicación web funcione de forma óptima, independientemente de la ubicación del visitante.
  3. Utiliza trabajadores de fila: los trabajadores de fila son procesos en segundo plano que gestionan tareas que consumen muchos recursos. Estos ayudan a descargar estos procesos del flujo principal de la aplicación para mejorar el rendimiento.
  4. Aplica la carga lenta: la carga lenta recupera datos relacionados con el solicitado en una sola consulta. Ayuda a reducir la carga, ya que la base de datos no necesita enviar la información individualmente.

Además, controla siempre el rendimiento de tu aplicación web para asegurarte de que funciona de forma óptima. Esto te permitirá detectar rápidamente posibles problemas que afecten al tiempo de actividad o a la usabilidad. 

Hostinger ofrece una función integrada de monitorización de los recursos del servidor accesible a través de hPanel.

Resumen de VPS

Conclusión

Laravel es un framework de aplicaciones web PHP de código abierto que ayuda a mejorar la eficiencia del desarrollo. 

Para desplegarlo en el VPS de Hostinger, navega al menú Sistema Operativo en hPanel e instala la plantilla Ubuntu 22.04 con Laravel. A continuación, sube tu proyecto a través del Administrador de archivos de CloudPanel.

Alternativamente, los usuarios que busquen más flexibilidad pueden desplegar Laravel manualmente utilizando comandos. Estos son los pasos:

  1. Prepara el nuevo servidor: instala Composer, el servidor web Apache, PHP y otros programas en el entorno de producción. Alternativamente, utiliza Laravel Forge para gestionarlos en una única plataforma.
  2. Despliega la aplicación: configura un host virtual creando un archivo de configuración de Apache. Impulsa el código de tu aplicación desde un repositorio Git al servidor activo.
  3. Configura el archivo .env: copia la plantilla .env.example en la carpeta de tu aplicación y cambia el par clave-valor del archivo .env para ajustar su configuración.
  4. Ejecuta la aplicación Laravel: cambia los permisos y la propiedad de la carpeta del proyecto. Ejecuta los comandos composer install y PHP artisan, y desactiva el host virtual por defecto de Apache.

Para mejorar la eficiencia de la creación del proyecto Laravel, utiliza el Asistente con IA VPS de Hostinger, las herramientas de automatización y el gestor de dependencias Composer. 

Además, configura una CDN, habilita la caché y optimiza las consultas a la base de datos para mejorar el rendimiento de tu aplicación.

Esperamos que esta guía te haya sido de utilidad. Si tienes algún comentario o pregunta, escríbela en la sección de abajo. ¡Buena suerte! 

Cómo desplegar Laravel – Preguntas frecuentes

En esta sección, responderemos a varias preguntas comunes sobre cómo crear un nuevo proyecto de Laravel. 

¿Qué necesito para desplegar un proyecto Laravel?

Para desplegar aplicaciones Laravel, necesitas un servidor que ejecute un sistema operativo compatible, como Ubuntu. 

También necesitas varias dependencias, como un servidor web, PHP, extensiones PHP, Composer, Git y una base de datos.

Asimismo es posible utilizar NGINX o Apache. Mientras tanto, las bases de datos populares para Laravel incluyen MySQL y MongoDB.

¿Puedo desplegar varias aplicaciones Laravel en el mismo servidor?

Sí, puedes desplegar varias aplicaciones en un servidor Laravel con un directorio dedicado, dependencias y entornos de configuración.

Para esto, crea carpetas separadas para las aplicaciones Laravel dentro de la ruta /var/www/html. Configura hosts virtuales dedicados para cada proyecto y copia el archivo .env en cada directorio.

¿Puedo escalar mi aplicación Laravel?

Sí. Puedes aplicar métodos de escalado habituales, como configurar equilibradores de carga, actualizar los recursos del servidor y configurar mecanismos de almacenamiento en caché como Redis o Memcached.

Además, este framework tiene un sistema de filas integrado que descarga del flujo principal las tareas que exigen recursos. Esto ayuda a mejorar el rendimiento para escalar aplicaciones Laravel.

Author
El autor

Diego Vargas

Diego es comunicador social, especialista en publicidad digital que trabaja constantemente en mejorar sus conocimientos de marketing digital, enfocándose en contenido y SEO. Idiomas, series, libros y cursos en internet son sus hobbies principales, además de los deportes. Este es su perfil de LinkedIn.