programación

Instalación de Laravel en Ubuntu

Instalar y configurar una aplicación Laravel en un servidor con Nginx como servidor web sobre una pila LEMP (Linux, Nginx, MySQL, PHP) en un sistema operativo Ubuntu es un proceso crucial para desplegar aplicaciones web de manera eficiente y segura. Aquí te proporcionaré una guía detallada para realizar este proceso paso a paso.

Requisitos Previos

Antes de comenzar, asegúrate de tener acceso a un servidor Ubuntu con privilegios de superusuario (sudo). Además, necesitarás tener instalado Nginx, PHP, MySQL y Composer en tu servidor.

Paso 1: Instalación de Laravel

Primero, necesitaremos instalar Laravel en nuestro servidor. Para ello, abre una terminal y navega hasta el directorio raíz de tu servidor web (por lo general, /var/www).

Luego, ejecuta el siguiente comando para clonar el repositorio de Laravel desde GitHub:

bash
composer create-project --prefer-dist laravel/laravel nombre-de-tu-proyecto

Esto creará un nuevo directorio llamado nombre-de-tu-proyecto que contendrá todos los archivos de Laravel.

Paso 2: Configuración de Nginx

Ahora, necesitamos configurar Nginx para que sirva nuestra aplicación Laravel. Para hacer esto, crea un nuevo archivo de configuración para tu sitio en el directorio /etc/nginx/sites-available/.

bash
sudo nano /etc/nginx/sites-available/tu-proyecto

Dentro de este archivo, puedes utilizar la siguiente configuración como punto de partida:

nginx
server { listen 80; server_name tudominio.com; root /var/www/nombre-de-tu-proyecto/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Asegúrate de cambiar la versión de PHP si es diferente } location ~ /\.ht { deny all; } }

Guarda y cierra el archivo. Luego, crea un enlace simbólico en el directorio sites-enabled para habilitar este archivo de configuración:

bash
sudo ln -s /etc/nginx/sites-available/tu-proyecto /etc/nginx/sites-enabled/

Finalmente, reinicia Nginx para aplicar los cambios:

bash
sudo systemctl restart nginx

Paso 3: Configuración de permisos y variables de entorno

Es importante establecer los permisos adecuados para que Laravel funcione correctamente. Primero, cambia el propietario de los archivos de Laravel al usuario de Nginx:

bash
sudo chown -R www-data:www-data /var/www/nombre-de-tu-proyecto

Luego, asegúrate de que Laravel pueda leer y escribir en ciertos directorios creando enlaces simbólicos:

bash
sudo ln -s /var/www/nombre-de-tu-proyecto/storage/app/public /var/www/nombre-de-tu-proyecto/public/storage sudo ln -s /var/www/nombre-de-tu-proyecto/storage/logs /var/www/nombre-de-tu-proyecto/storage/logs

Además, puedes necesitar configurar algunas variables de entorno para Laravel. Para ello, abre el archivo .env en el directorio raíz de tu proyecto y establece las variables de entorno según sea necesario, como las credenciales de la base de datos.

Paso 4: Configuración de la base de datos

Si aún no has configurado una base de datos para tu aplicación Laravel, necesitarás hacerlo ahora. Puedes hacerlo utilizando el cliente de MySQL:

bash
mysql -u root -p

Luego, dentro de MySQL, crea una nueva base de datos y un usuario con privilegios para esa base de datos:

sql
CREATE DATABASE nombre_de_tu_base_de_datos; CREATE USER 'nombre_de_usuario'@'localhost' IDENTIFIED BY 'tu_contraseña'; GRANT ALL PRIVILEGES ON nombre_de_tu_base_de_datos.* TO 'nombre_de_usuario'@'localhost'; FLUSH PRIVILEGES;

Paso 5: Migraciones y ajustes finales

Finalmente, ejecuta las migraciones de Laravel para crear la estructura de la base de datos:

bash
php artisan migrate

Si necesitas cargar datos iniciales, puedes hacerlo ahora. Además, asegúrate de configurar cualquier otra característica específica de tu aplicación Laravel según sea necesario.

Conclusión

¡Felicidades! Ahora has instalado y configurado con éxito una aplicación Laravel en un servidor Ubuntu con Nginx como servidor web. Tu aplicación debería estar lista para ser accedida a través del nombre de dominio que hayas configurado. Recuerda mantener tu servidor actualizado y asegurado para garantizar la estabilidad y la seguridad de tu aplicación. Si encuentras algún problema, revisa los registros de Nginx y los registros de Laravel para obtener más información sobre posibles errores.

Más Informaciones

Por supuesto, profundicemos en cada paso y en algunos aspectos adicionales para garantizar una comprensión completa del proceso de instalación y configuración de una aplicación Laravel en un servidor Ubuntu con Nginx.

Paso 1: Instalación de Laravel

Laravel es un popular framework de desarrollo de aplicaciones web en PHP que sigue el patrón de arquitectura MVC (Modelo-Vista-Controlador). Para instalar Laravel, utilizamos Composer, que es un administrador de dependencias para PHP.

El comando composer create-project crea una nueva instancia de Laravel en el directorio especificado. La opción --prefer-dist le dice a Composer que prefiera descargar versiones precompiladas de las dependencias, lo que puede acelerar el proceso de instalación.

Paso 2: Configuración de Nginx

Nginx es un servidor web ligero y de alto rendimiento que se utiliza comúnmente como un servidor proxy inverso y para servir contenido estático. En la configuración de Nginx, definimos cómo se debe manejar el tráfico para nuestra aplicación Laravel.

  • listen 80;: Esto especifica que Nginx debe escuchar en el puerto 80, el puerto predeterminado para HTTP.
  • server_name tudominio.com;: Aquí debes reemplazar tudominio.com con tu propio dominio. Esto le dice a Nginx qué dominio debe asociarse con este bloque de servidor.
  • root /var/www/nombre-de-tu-proyecto/public;: Esto establece la ruta al directorio public dentro de tu proyecto Laravel. Es importante que Nginx apunte a este directorio, ya que es desde donde Laravel sirve su contenido.
  • index index.php index.html index.htm;: Aquí definimos el orden de los archivos que Nginx debe buscar cuando se solicita una URL.
  • try_files $uri $uri/ /index.php?$query_string;: Esta directiva le dice a Nginx que intente servir el archivo solicitado directamente, y si no puede encontrarlo, reenvíe la solicitud a index.php para que Laravel pueda manejarla.
  • location ~ \.php$ { ... }: Esta sección configura cómo Nginx debe manejar las solicitudes de archivos PHP. En este caso, estamos utilizando PHP-FPM (PHP FastCGI Process Manager) para procesar los archivos PHP.
  • location ~ /\.ht { ... }: Esta directiva niega el acceso a archivos que comienzan con .ht, que son archivos de configuración sensibles de Apache que podrían revelar información sobre el servidor si se accede a ellos directamente.

Paso 3: Configuración de permisos y variables de entorno

Es crucial establecer los permisos correctos en los archivos y directorios de Laravel para garantizar que el servidor web pueda acceder a ellos correctamente. El usuario y el grupo www-data son los que Nginx utiliza para ejecutar sus procesos, por lo que les damos permisos sobre los archivos de Laravel.

Además, Laravel utiliza un archivo .env para almacenar variables de entorno como configuraciones de la base de datos y credenciales sensibles. Es importante configurar este archivo adecuadamente para que Laravel pueda interactuar con la base de datos y otras partes del sistema.

Paso 4: Configuración de la base de datos

La mayoría de las aplicaciones Laravel requieren una base de datos para almacenar datos. En este paso, creamos una nueva base de datos y un usuario con privilegios adecuados para acceder a ella. Esto se hace utilizando el cliente de MySQL y ejecutando comandos SQL para crear la base de datos y el usuario.

Paso 5: Migraciones y ajustes finales

Las migraciones en Laravel son una forma conveniente de definir la estructura de la base de datos utilizando código PHP en lugar de SQL directamente. Después de configurar la base de datos, ejecutamos las migraciones para crear las tablas y relaciones necesarias en la base de datos.

Además de las migraciones, es posible que necesites realizar otros ajustes finales, como la configuración de servicios de terceros, la configuración de colas de trabajo, la configuración de servicios de correo electrónico, entre otros, dependiendo de las necesidades específicas de tu aplicación.

¡Con estos pasos adicionales, ahora tienes una comprensión más completa de cómo instalar y configurar una aplicación Laravel en un servidor Ubuntu con Nginx! Si tienes alguna pregunta adicional o necesitas más detalles sobre algún aspecto específico, no dudes en preguntar.

Botón volver arriba