Instalar Stack LEMP en un VPS: Guía Paso a Paso 2024

instalar stack LEMP

📅 Publicado el 4 de septiembre, 2026 · Por Equipo RedServicio

Qué es el stack LEMP y por qué elegirlo para tu VPS

Si vas a instalar stack LEMP en un VPS recién creado, has elegido bien. LEMP significa Linux, Nginx, MySQL y PHP (la «E» viene de cómo se pronuncia Nginx: «engine-x»). Es software libre, y con él funcionan millones de sitios de alto tráfico en todo el mundo.

¿Por qué Nginx y no Apache? La diferencia está en la arquitectura. Nginx trabaja orientado a eventos: consume menos memoria y aguanta miles de conexiones simultáneas sin despeinarse. En un VPS con recursos limitados, donde cada megabyte de RAM cuenta, eso se nota. Y mucho.

Requisitos previos antes de instalar el stack LEMP

Necesitas esto antes de empezar:

  • Un VPS con Linux: usaremos Ubuntu 22.04 LTS como base, aunque en Debian los pasos son casi idénticos.
  • Acceso SSH: conéctate con un usuario que tenga privilegios sudo.
  • Al menos 1 GB de RAM: con 512 MB funciona, pero MySQL puede quedarse corto.
  • Un dominio apuntando al servidor: recomendable si vas a configurar SSL más adelante.

Conéctate a tu servidor:

ssh root@TU_IP_DEL_SERVIDOR

Y actualiza los paquetes para partir de una base limpia:

sudo apt update && sudo apt upgrade -y

Paso 1: Instalar Nginx como servidor web

Nginx recibirá las peticiones HTTP y las servirá. Instalarlo en Ubuntu no puede ser más simple:

sudo apt install nginx -y

Una vez instalado, verifica que el servicio está activo y arranca con el sistema:

sudo systemctl enable –now nginx

sudo systemctl status nginx

Abre el navegador y ve a http://TU_IP. Deberías ver la página de bienvenida de Nginx. Un detalle: si tu proveedor de VPS usa un firewall externo, comprueba que los puertos 80 y 443 estén abiertos.

Paso 2: Instalar y asegurar MySQL

Ahora toca el sistema de gestión de bases de datos. Instálalo con algunas dependencias útiles:

sudo apt install mysql-server -y

Y ejecuta el script de seguridad que trae incluido. Elimina configuraciones inseguras por defecto:

sudo mysql_secure_installation

Este asistente te pedirá configurar la validación de contraseñas, eliminar usuarios anónimos, deshabilitar el acceso remoto de root y borrar la base de datos de pruebas. Responde Y a todo si el servidor va a producción.

Comprueba que MySQL funciona:

sudo systemctl status mysql

Consejo: crea un usuario específico para cada aplicación en lugar de usar root. Por ejemplo: CREATE USER ‘miweb’@’localhost’ IDENTIFIED BY ‘contraseña_segura’; y luego otorga permisos solo sobre su base de datos con GRANT ALL PRIVILEGES ON miweb_db.* TO ‘miweb’@’localhost’;

Paso 3: Instalar PHP y el PHP-FPM

PHP procesa la parte dinámica de tus sitios. Instálalo junto con PHP-FPM (FastCGI Process Manager), que es el componente que Nginx usará para hablar con PHP:

sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

Mira qué versión tienes:

php -v

Para producción conviene limitar los recursos que PHP puede consumir. Edita el archivo de configuración de PHP-FPM (ajusta la ruta según tu versión, por ejemplo PHP 8.1):

sudo nano /etc/php/8.1/fpm/php.ini

Busca y modifica estos valores:

  • cgi.fix_pathinfo=0 (evita ejecuciones de scripts no deseados)
  • upload_max_filesize = 32M (ajústalo a lo que necesites)
  • memory_limit = 256M

Reinicia para aplicar:

sudo systemctl restart php8.1-fpm

Paso 4: Configurar Nginx para procesar PHP

Nginx, por defecto, no sabe qué hacer con archivos PHP. Hay que decírselo. Crea un bloque de servidor para tu sitio:

sudo nano /etc/nginx/sites-available/miweb

Con este contenido básico:

server {
  listen 80;
  server_name tudominio.com www.tudominio.com;
  root /var/www/miweb;
  index index.php index.html;
  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
  }
}

Crea el directorio del sitio y una página de prueba:

sudo mkdir -p /var/www/miweb
echo «<?php phpinfo(); ?>» | sudo tee /var/www/miweb/index.php

Habilita el sitio y verifica que la configuración no tiene errores:

sudo ln -s /etc/nginx/sites-available/miweb /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

¿Ves la página de información de PHP al visitar tu dominio? Entonces el stack LEMP ya funciona. Ojo con esto: elimina el archivo phpinfo() una vez comprobado, porque expone información sensible del servidor.

Paso 5: Configurar el firewall y asegurar el servidor

Cualquier VPS expuesto a internet recibe ataques constantes. Configura UFW para permitir solo el tráfico necesario:

sudo ufw allow OpenSSH
sudo ufw allow ‘Nginx Full’
sudo ufw enable

Conviene también tomar estas medidas:

  1. Desactivar el login SSH por contraseña y usar claves SSH.
  2. Instalar Fail2ban para bloquear intentos de fuerza bruta automáticamente.
  3. Configurar certificados SSL gratuitos con Certbot: sudo apt install certbot python3-certbot-nginx y luego sudo certbot –nginx -d tudominio.com
  4. Programar copias de seguridad de tu base de datos y archivos regularmente.

Errores comunes al instalar el stack LEMP

Error 502 Bad Gateway

Suele significar que Nginx no logra comunicarse con PHP-FPM. Verifica que el socket en la directiva fastcgi_pass coincida exactamente con tu versión de PHP: ls /run/php/ te mostrará el socket correcto.

La página descarga el archivo PHP en lugar de ejecutarlo

Falta el bloque location ~ \.php$ en tu configuración de Nginx. Revísalo y vuelve a recargar el servicio.

Permisos denegados al subir archivos

El usuario de PHP-FPM (www-data) necesita permisos de escritura en el directorio. Usa sudo chown -R www-data:www-data /var/www/miweb cuando la aplicación lo requiera.

¿Preguntas frecuentes

¿LEMP o LAMP, cuál es mejor para mi VPS? Para sitios con mucho tráfico concurrente o servidores con poca RAM, LEMP rinde mejor. Apache sigue siendo válido si necesitas .htaccess, como en algunos CMS clásicos.

¿Cuánto tarda la instalación? Entre 15 y 30 minutos en un VPS limpio si sigues la guía paso a paso.

¿Puedo instalar MariaDB en lugar de MySQL? Sí. MariaDB es 100% compatible y sustituye a MySQL con sudo apt install mariadb-server.

Conclusión: tu servidor LEMP listo para producción

Montar el stack LEMP en un VPS limpio es sencillo si respetas el orden: Nginx como servidor web, MySQL para los datos, PHP-FPM para el procesamiento dinámico y un firewall bien configurado cubriendo la espalda. Desde ahí puedes desplegar WordPress, Laravel o cualquier aplicación PHP con un rendimiento excelente.

¿Prefieres dedicar tu tiempo a tu proyecto y no a la administración de servidores? En RedServicio ofrecemos hosting de calidad con soporte 24/7 y planes que se adaptan a cada etapa de tu negocio. Nuestro equipo técnico puede ayudarte tanto con un VPS como con un hosting gestionado, para que tu web funcione siempre al máximo rendimiento.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Página GratisCrea tu web gratis

ClisecSeguridad informática

Scroll al inicio