LEMP Stack · 6 min read · Jan 05, 2026

Instalar LEMP Stack (Nginx, PHP y MariaDB) en Debian 11

El LEMP Stack es un conjunto de software y marcos o bibliotecas de código abierto que se utilizan para alojar aplicaciones web en Internet. Un stack consiste en el sistema operativo Linux, el servidor web Nginx, el servidor de base de datos MariaDB/MySQL y el lenguaje PHP. Un LEMP tiene un buen soporte comunitario y se utiliza en muchas aplicaciones web de gran escala en todo el mundo.

En esta publicación, te mostraremos cómo instalar el stack LEMP en Debian 11.

Prerequisitos

  • Un servidor que ejecute Debian 11.
  • Un nombre de dominio válido apuntado a la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Comenzando

Antes de comenzar, es una buena idea actualizar los paquetes de tu sistema a la última versión. Puedes actualizar todos los paquetes utilizando el siguiente comando:

apt-get update -y

Una vez que tu sistema esté actualizado, puedes proceder al siguiente paso.

Instalar el Servidor Web Nginx

Nginx es un servidor web gratuito y de código abierto que sigue una arquitectura basada en eventos y es capaz de manejar múltiples solicitudes dentro de un hilo. Es compatible con aplicaciones de uso común y se utiliza para servir archivos estáticos.

Por defecto, el paquete de Nginx está incluido en el repositorio predeterminado de Debian 11. Puedes instalarlo utilizando el siguiente comando:

apt-get install nginx -y

Una vez que Nginx esté instalado, inicia el servicio de Nginx y habilítalo para que se inicie al reiniciar el sistema:

systemctl start nginx  
systemctl enable nginx

También puedes verificar la versión instalada de Nginx con el siguiente comando:

nginx -v

Deberías ver la siguiente salida:

nginx version: nginx/1.18.0

Por defecto, Nginx se ejecuta en el puerto 80. Puedes comprobarlo utilizando el siguiente comando:

ss -antpl | grep nginx

Deberías ver la siguiente salida:

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=44342,fd=8),("nginx",pid=44341,fd=8))
LISTEN 0      511             [::]:80           [::]:*    users:(("nginx",pid=44342,fd=9),("nginx",pid=44341,fd=9))

También puedes comprobar la instalación de Nginx utilizando la URL http://tu-ip-del-servidor. Deberías ver la página de prueba de Nginx en la siguiente página:

Página de bienvenida de Nginx

En este punto, el servidor web Nginx está instalado. Ahora puedes proceder al siguiente paso.

Instalar el Servidor de Base de Datos MariaDB

MariaDB es una base de datos basada en SQL de código abierto que se utiliza para almacenar y gestionar datos para sitios web. Por defecto, el paquete de MariaDB está incluido en el repositorio predeterminado de Debian 11. Puedes instalarlo utilizando el siguiente comando:

apt-get install mariadb-server -y

Una vez que el servidor de base de datos MariaDB esté instalado, inicia el servicio de MariaDB y habilítalo para que se inicie al reiniciar el sistema:

systemctl start mariadb  
systemctl enable mariadb

También puedes comprobar el estado del servicio de MariaDB con el siguiente comando:

systemctl status mariadb

Deberías ver la siguiente salida:

? mariadb.service - Servidor de base de datos MariaDB 10.3.31
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:25 UTC; 1min 36s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1838 (mysqld)
     Status: "Tomando tus solicitudes SQL ahora..."
      Tasks: 31 (limit: 2353)
     Memory: 66.1M
     CGroup: /system.slice/mariadb.service
             ??1838 /usr/sbin/mysqld

También se recomienda asegurar tu instalación de MariaDB y establecer una contraseña de root de MariaDB. Puedes ejecutar el script mysql_secure_installation para asegurar la instalación de MariaDB:

mysql_secure_installation

Se te pedirá que establezcas una contraseña de root de MariaDB, elimines usuarios anónimos, deshabilites el inicio de sesión remoto de root y elimines la base de datos de prueba como se muestra a continuación:

Enter current password for root (enter for none): 
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Por defecto, MariaDB se ejecuta en el puerto 3306. Puedes comprobarlo utilizando el siguiente comando:

ss -antpl | grep mariadb

Deberías ver el siguiente comando:

LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*    users:(("mariadbd",pid=12181,fd=15))

Para conectarte a la shell de MariaDB, ejecuta el siguiente comando:

mysql -u root -p

Proporciona tu contraseña de root de MariaDB y presiona Enter para conectarte a la shell de MariaDB. Una vez que estés conectado, deberías ver la siguiente salida:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.5.11-MariaDB-1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Ahora, ejecuta el siguiente comando para comprobar la versión de MariaDB:

MariaDB [(none)]> SELECT VERSION();

Deberías ver la siguiente salida:

+-------------------+
| VERSION()         |
+-------------------+
| 10.5.11-MariaDB-1 |
+-------------------+
1 row in set (0.001 sec)

En este punto, el servidor de base de datos MariaDB está instalado y asegurado. Ahora puedes proceder al siguiente paso.

Instalar el Lenguaje PHP

PHP significa Preprocesador de Hipertexto y es un lenguaje de scripting utilizado en el lado del servidor. Es de código abierto, tiene un gran soporte comunitario y se utiliza para alojar aplicaciones PHP en Internet.

Por defecto, la versión de PHP disponible en Debian 11 es PHP 7.4. Puedes instalar PHP con otras extensiones de uso común con el siguiente comando:

apt-get install php php-fpm php-cli php-mysql php-zip php-curl php-xml -y

Una vez que PHP esté instalado, verifica la versión de PHP utilizando el siguiente comando:

php -v

Deberías ver la siguiente salida:

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Crear un Host Virtual para Nginx

Aquí, crearemos un directorio example.com para alojar una página PHP. Puedes crearlo con el siguiente comando:

mkdir /var/www/html/example.com

A continuación, establece la propiedad del directorio example.com a www-data:

chown -R www-data:www-data /var/www/html/example.com

A continuación, crea un archivo de configuración de host virtual de Nginx con el siguiente comando:

nano /etc/nginx/conf.d/example.conf

Agrega las siguientes líneas:

server {

  listen 80;
  server_name example.com;

  root /var/www/html/example.com;
  index index.php;
  access_log /var/log/nginx/example_access.log;
  error_log /var/log/nginx/example_error.log;

  client_max_body_size 100M;

  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Guarda y cierra el archivo, luego verifica la configuración de Nginx para cualquier error de configuración con el siguiente comando:

nginx -t

Deberías ver la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio de Nginx para aplicar los cambios de configuración:

systemctl restart nginx

También puedes comprobar el estado del servicio de Nginx utilizando el siguiente comando:

systemctl status nginx

Deberías ver la siguiente salida:

? nginx.service - Un servidor web de alto rendimiento y un servidor proxy inverso
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:37:27 UTC; 5s ago
       Docs: man:nginx(8)
   Main PID: 4378 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??4378 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??4379 nginx: worker process

Aug 21 04:37:27 debian11 systemd[1]: Starting Un servidor web de alto rendimiento y un servidor proxy inverso...
Aug 21 04:37:27 debian11 systemd[1]: Started Un servidor web de alto rendimiento y un servidor proxy inverso.

Verificar la Instalación de PHP en Nginx

A continuación, necesitarás crear un archivo PHP de muestra para servir a través del servidor web Nginx. Puedes crear un archivo phpinfo.php dentro de tu directorio example.com:

nano /var/www/html/example.com/phpinfo.php

Agrega la siguiente línea:


Guarda y cierra el archivo, luego abre tu navegador web y accede a tu página PHP utilizando la URL http://example.com/phpinfo.php. Deberías ver tu página PHP en la siguiente pantalla:

Conclusión

En la guía anterior, explicamos cómo instalar el stack LEMP en Debian 11. Ahora puedes comenzar a alojar tu primer sitio web utilizando el stack LEMP. No dudes en preguntarme si tienes alguna pregunta.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.