Volver al blog

Instalación y configuración de Laravel con Nginx en Ubuntu 20.04

Instalación y configuración de Laravel con Nginx en Ubuntu 20.04

Introducción

Laravel es un framework de aplicaciones web que viene con un conjunto de herramientas y recursos integrados para desarrollar aplicaciones PHP modernas. Es muy conocido por su fiabilidad, rendimiento, eficiencia, modularidad y seguridad. Debido a sus diversas funciones integradas, Laravel ha experimentado un crecimiento increíble en su popularidad. Muchos desarrolladores están adoptando Laravel para agilizar el proceso de desarrollo web.

Esta guía demostrará cómo instalar y configurar una nueva aplicación Laravel en Ubuntu 20.04.

Laravel en Ubuntu

Utilizaremos Composer, un gestor de dependencias de PHP, para descargar y administrar Laravel. Para instalar Composer siga las instrucciones de este tutorial. El servidor Nginx servirá la aplicación. Establecerá una aplicación Laravel de demostración utilizando la base de datos MySQL.

Esta guía requiere algunos requisitos previos. Asumimos que ya tiene un servidor Ubuntu 20.04 configurado correctamente y en funcionamiento. Como referencia, aquí tiene una guía rápida sobre cómo configurar un servidor Ubuntu. También es necesario tener instalado y configurado el stack LEMP (Linux, Nginx, MySQL y PHP). Tenemos una guía detallada sobre cómo instalar y configurar el stack LEMP.

Dado que vamos a instalar varios paquetes, se requieren permisos de root. En el caso de Ubuntu, el usuario root está deshabilitado por defecto. Por lo tanto, necesitamos acceso a un usuario no root con privilegios sudo. Aquí tiene cómo otorgar permisos de sudo a otros usuarios.

Paso 1 – Instalación de módulos PHP

Antes de instalar Laravel, necesitamos algunos módulos PHP importantes para el framework. Estos módulos están disponibles directamente en los repositorios de paquetes predeterminados de Ubuntu. Estos módulos admiten funciones como la codificación de caracteres, XML y matemáticas de precisión.

Primero, actualice la caché de APT e instale los paquetes:

Paso 2 – Creación de una base de datos para la aplicación

Para demostrar la funcionalidad de Laravel, crearemos una aplicación de lista de viajes que muestre la lista de lugares que el usuario desea visitar y una lista de lugares que ya han sido visitados. Podemos almacenar estos datos en una tabla de lugares con los campos name (nombre de la ubicación) y visited (marcado como visitado o no visitado). Un campo adicional presentará una identidad única para cada entrada. Para conectar los datos con nuestra aplicación Laravel, crearemos un usuario de MySQL dedicado y le otorgaremos permisos completos sobre la base de datos travellist.

La biblioteca nativa de PHP para MySQL mysqlnd ya no admite caching_sha2_authentication. Por lo tanto, necesitamos configurar nuestra base de datos con el método de autenticación mysql_native_password. Acceda a la consola de MySQL como el usuario root:

A continuación, cree una nueva base de datos llamada travellist:

Después de eso, cree un usuario dedicado travellist_user con una contraseña adecuada:

Otorgue al usuario travellist_user permisos completos sobre la base de datos travellist. Esto también evitará que el usuario cree y modifique cualquier otra base de datos en el servidor:

Salga de la consola de MySQL:

exit

Pongamos a prueba al nuevo usuario. El siguiente comando iniciará sesión en la consola de MySQL como el usuario travellist_user. La opción -p solicitará la contraseña del usuario:

Muestre todas las bases de datos disponibles. Tal como se configuró anteriormente, solo debería mostrar travellist y information_schema únicamente:

A continuación, necesitamos crear la tabla de datos places. Ejecute la siguiente sentencia MySQL:

Vamos a poblar la tabla con algunos datos de muestra:

Veamos si los datos se guardaron correctamente en la base de datos:

Como podemos ver, la tabla de prueba está poblada con datos válidos. Ahora podemos salir de la consola de MySQL:

MySQL shell

Paso 3 – Creación de una nueva aplicación Laravel

Ahora estamos listos para crear una nueva aplicación Laravel usando Composer. Usaremos travellist como aplicación de demostración. Esta aplicación mostrará la lista de ubicaciones de la base de datos MySQL, demostrando la configuración básica de Laravel. Vaya al directorio de inicio del usuario:

El siguiente paso es crear una nueva aplicación Laravel usando Composer. Creará un directorio dedicado travellist con una aplicación Laravel básica con la configuración predeterminada. Ejecute el siguiente comando:

composer create-project

Una vez establecida la aplicación, podemos verificar si todos los componentes se instalaron correctamente:

php artisan

La salida verifica que todos los archivos de la aplicación están en su lugar. También asegura que todas las herramientas de línea de comandos de Laravel son funcionales. Sin embargo, aún requiere la configuración de la aplicación para configurar la base de datos y algunos ajustes adicionales.

Paso 4 – Configuración de Laravel

Todos los archivos de configuración de Laravel se almacenan dentro de un directorio llamado config dentro del directorio raíz de la aplicación. Además, al instalar Laravel con Composer, también se crea un archivo de entorno. Este contiene varias configuraciones específicas para el entorno actual. Los valores declarados en él tendrán prioridad sobre los valores establecidos en los archivos de configuración normales en config.

Cada instalación única requerirá su propio archivo de entorno para definir valores como la configuración de conexión a la base de datos, la URL de la aplicación, las opciones de depuración, etc. Tenga en cuenta que el archivo de entorno contiene información confidencial como credenciales de la base de datos, claves de seguridad, etc. Por eso se recomienda encarecidamente no compartir nunca este archivo públicamente.

Abra el archivo de entorno con un editor de texto:

Aquí tiene un código de entorno de muestra:

DB_PASSWORD=password123

Analicemos los valores:

  • APP_NAME: Este campo describe el nombre de la aplicación. Este nombre se utilizará para notificaciones y mensajes.
  • APP_ENV: El entorno actual de la aplicación.
  • APP_KEY: Esta clave se genera automáticamente al instalar Laravel a través de Composer. Se utiliza para generar salts y hashes. No es necesario cambiarla.
  • APP_DEBUG: Interruptor del modo de depuración. Cuando está activado, mostrará información de depuración en el lado del cliente.
  • APP_URL: URL base de la aplicación. También se utiliza para generar enlaces de la aplicación.
  • DB_DATABASE: El nombre de la base de datos. En este caso, será la base de datos dedicada que creamos.
  • DB_USERNAME: El nombre de usuario para conectarse a la base de datos.
  • DB_PASSWORD: La contraseña para conectarse a la base de datos.

Una vez realizados los cambios, guarde el archivo y cierre el editor.

Paso 5 – Configuración de Nginx

Hemos instalado con éxito Laravel en una carpeta local del directorio de inicio del usuario. Esta configuración funciona bien para el entorno de desarrollo local. Sin embargo, no se recomienda implementarla para servidores web que estén abiertos al internet público.

Nuestro siguiente paso es mover la aplicación a /var/www ya que es la ubicación habitual para las aplicaciones web que se ejecutan en Nginx. Use el mv comando para mover travellist a /var/www/travellist:

A continuación, asigne al usuario acceso de escritura a las carpetas storage y cache . Estas son las ubicaciones de los archivos generados por la aplicación Laravel:

Los archivos de la aplicación ya están en su lugar. Sin embargo, necesitamos decirle a Nginx que sirva el contenido. Cree un nuevo archivo de configuración de host virtual:

Aquí tiene una muestra de la configuración recomendada para una aplicación Laravel que se ejecuta en Nginx:

Es hora de activar el nuevo archivo de configuración de host virtual. Cree un enlace simbólico al directorio sites-enabled:

El siguiente comando de Nginx probará los archivos de configuración en busca de errores de sintaxis:

A continuación, recargue Nginx:

La aplicación ahora debería estar disponible utilizando el nombre de dominio o la dirección IP (según lo definido por la directiva server_name):

Installing Laravel image 3

Paso 6 – Personalización de la página principal

Con la aplicación Laravel configurada, ahora podemos empezar a trabajar en ella. Para la demostración, es hora de que creemos una página de muestra que muestre los datos de muestra de la tabla de la base de datos places. Primero, abra el archivo de ruta principal en un editor de texto:

El archivo contendrá algún contenido por defecto. Aquí, las rutas se definen utilizando el método estático (Route::get). Recibe una ruta y una función callback como argumentos.

Reemplace el código con el siguiente:

Installing Laravel image 2

Guarde el archivo y cierre el editor. A continuación, crearemos el diseño para mostrar los resultados de la consulta de la base de datos al usuario. Cree un nuevo archivo dentro de resource/views:

En el siguiente código, hemos creado dos listas de lugares dependiendo del valor de visited y togo:

Installing Laravel image 1

Guarde el archivo y cierre el editor. Ahora, acceda de nuevo a la página de la aplicación web:

Travel list

¡Voila! Ahora tenemos una aplicación Laravel funcional que utiliza una base de datos MySQL para los contenidos.

Conclusiones

En este tutorial, mostramos cómo configurar una aplicación Laravel sobre el entorno LEMP en un servidor Ubuntu 20.04. También mostramos cómo personalizar la ruta predeterminada para consultar el contenido de la base de datos y mostrar los resultados en una vista personalizada. Para obtener más información sobre Laravel, consulte la documentación oficial sobre vistas, rutas, y soporte de base de datos.

La instalación de este tutorial se realiza en una máquina virtual independiente. Sin embargo, también puede desplegar Laravel en entornos LEMP en Docker.

¡Feliz computación!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.