
📅 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:
- Desactivar el login SSH por contraseña y usar claves SSH.
- Instalar Fail2ban para bloquear intentos de fuerza bruta automáticamente.
- Configurar certificados SSL gratuitos con Certbot: sudo apt install certbot python3-certbot-nginx y luego sudo certbot –nginx -d tudominio.com
- 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 →