Cómo instalar Linux, Nginx, Mariabd y PHP (pila LEMP) en Ubuntu 22.04
Introducción
La pila LEMP es un conjunto de software que se utiliza para desarrollar y alojar aplicaciones web dinámicas y sitios web. Es una combinación de Linux como sistema operativo, Nginx (pronunciado "Engine-X") como servidor web, MariaDB/MySQL como sistema de gestión de bases de datos y PHP como lenguaje de programación del lado del servidor. La pila LEMP es muy popular debido a su rendimiento, flexibilidad y robustez, y se utiliza para ejecutar aplicaciones web de alto tráfico.
Linux (L):
El sistema operativo que sirve de base para los demás componentes. Linux es conocido por su estabilidad, seguridad y eficiencia, lo que lo convierte en una opción común para servidores web.
Nginx (E):
Un servidor web ligero y de alto rendimiento que también puede funcionar como un servidor proxy inverso, equilibrador de carga y más. Nginx se destaca por su capacidad para manejar muchas conexiones simultáneas, lo que lo convierte en una opción popular para sitios web que requieren un alto rendimiento.
MariaDB/MySQL (M):
Es el sistema de gestión de bases de datos relacional. Aunque históricamente se usaba MySQL en la pila LAMP (una variante de LEMP con Apache en lugar de Nginx), MariaDB es una bifurcación de MySQL que ha ganado popularidad por su rendimiento mejorado y características adicionales. Las bases de datos se usan para almacenar información que las aplicaciones web necesitan recuperar y mostrar de manera dinámica.
PHP (P):
Un lenguaje de programación del lado del servidor que procesa las solicitudes de los usuarios, interactúa con la base de datos y genera el contenido dinámico de las páginas web. PHP es ampliamente usado en el desarrollo web, y es compatible con una gran variedad de frameworks y sistemas de gestión de contenidos, como WordPress, Drupal, Laravel, etc.
Instalación del Servidor
Actualizar los paquetes del sistema
Antes de instalar cualquier paquete, es importante asegurarse de que los repositorios del sistema estén actualizados.
sudo apt update
sudo apt upgrade
Instala Nginx
Nginx es el servidor web en la pila LEMP.
sudo apt install nginx -y
Una vez que se complete la instalación, habilita e inicia el servicio de Nginx:
sudo systemctl enable nginx
sudo systemctl start nginx
Para verificar que Nginx esté funcionando, abre tu navegador y escribe http://localhost o http://<tu-ip>.
Instalar MariaDB
MariaDB es el sistema de gestión de bases de datos.
sudo apt install mariadb-server mariadb-client -y
Una vez instalado, asegúrate de asegurar la instalación de MariaDB:
sudo mysql_secure_installation
Durante este proceso, se te pedirá configurar el root y seguir una serie de pasos de seguridad.
Instala php
PHP es el lenguaje de programación utilizado para ejecutar scripts del lado del servidor.
sudo apt install php-fpm php-mysql -y
Instalar extensiones adicionales de PHP
Si tu aplicación necesita extensiones específicas de PHP
sudo apt install php-xml php-cli php-zip php-curl
Verificamos la versión instalada
php -v
Esto instalará PHP y el módulo de PHP para conectarse a MariaDB.
Configurar Nginx para usar PHP
Editamos el archivo de configuración de servidor en Nginx para tu sitio web:
sudo nano /etc/nginx/sites-available/default
Asegúrate de que el bloque del servidor tenga la siguiente configuración básica para trabajar con PHP:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Guarda y cierra el archivo.
Damos permisos
sudo chmod -R 777 /var/www/html
Comprueba el funcionamiento de PHP
Crea un archivo PHP de prueba en el directorio raíz de tu servidor web.
<?php
phpinfo();
?>
Guarda y cierra el archivo. Luego, abre tu navegador y accede a http://localhost/info.php. Deberías ver la página con la configuración de PHP.
Reiniciar Nginx
Cada vez que modifiques la configuración de Nginx, debes reiniciar el servicio para que los cambios surtan efecto.
sudo systemctl reload nginx
Verificar el estado de los servicios
Asegúrate de que todos los servicios estén en ejecución:
sudo systemctl status nginx
sudo systemctl status mariadb
Conclusión:
La pila LEMP (Linux, Nginx, MySQL/MariaDB y PHP) es una configuración de servidor altamente eficiente y popular para implementar aplicaciones web dinámicas. A diferencia de la pila LAMP, que utiliza Apache como servidor web, LEMP usa Nginx, un servidor ligero y rápido que maneja mejor la concurrencia y el rendimiento en cargas altas, ideal para sitios con tráfico intensivo.
Esta arquitectura ofrece una combinación poderosa: Linux proporciona un sistema operativo estable y seguro; Nginx permite manejar un gran volumen de solicitudes de forma rápida; MySQL o MariaDB asegura un sistema de bases de datos robusto para almacenar y gestionar datos de forma eficiente; y PHP permite desarrollar aplicaciones web dinámicas y complejas.
En conjunto, la pila LEMP es una excelente elección para proyectos que requieren velocidad, escalabilidad y un consumo optimizado de recursos, convirtiéndola en una solución de servidor confiable para aplicaciones modernas y de alto rendimiento.