Cómo instalar WordPress en un VPS con Nginx, PHP y MariaDB
WordPress en tu propio VPS te da control total y rendimiento. Esta guía instala el conjunto clásico (Nginx, PHP-FPM y MariaDB), crea la base de datos, configura el sitio y activa HTTPS gratis.

- Necesitas un dominio con un registro A hacia la IP del VPS y los puertos 80 y 443 abiertos.
- Crea la base de datos con un usuario propio y una contraseña larga: no uses
rootpara WordPress. - Comprueba la versión de PHP con
ls /run/php/antes de escribir la configuración de Nginx. - Haz copia de la base de datos y de la carpeta del sitio con regularidad.
Antes de empezar
- Un VPS con Ubuntu o Debian y un usuario con
sudo(primeros pasos). - Un dominio con un registro A hacia la IP del VPS y los puertos 80 y 443 abiertos (firewall).
- Un snapshot del VPS limpio, por si quieres volver atrás.
1. Instalar Nginx, PHP y MariaDB
sudo apt update
sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl unzip curl
Asegura la base de datos con el asistente y responde a las preguntas (contraseña de root de MariaDB, quitar usuarios anónimos, etc.):
sudo mysql_secure_installation
2. Crear la base de datos
Entra en MariaDB y crea una base de datos y un usuario solo para WordPress (cambia la contraseña por una larga y única):
sudo mariadb
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'CONTRASEÑA_LARGA_Y_UNICA';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. Descargar WordPress
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo mv wordpress /var/www/midominio.com
sudo chown -R www-data:www-data /var/www/midominio.com
4. Configurar Nginx
Mira qué versión de PHP-FPM tienes para poner bien el socket:
ls /run/php/
Verás algo como php8.3-fpm.sock. Crea el sitio con ese nombre en fastcgi_pass:
sudo nano /etc/nginx/sites-available/midominio.com
server {
listen 80;
server_name midominio.com www.midominio.com;
root /var/www/midominio.com;
index index.php;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/midominio.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
5. HTTPS gratis con Certbot
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d midominio.com -d www.midominio.com
Más detalle en la guía web con Nginx y HTTPS.
6. Terminar la instalación en el navegador
- Abre
https://midominio.com: WordPress te pide el idioma y los datos de la base de datos. - Introduce el nombre
wordpress, el usuariowpuser, la contraseña que creaste y el servidorlocalhost. - Crea tu usuario administrador con una contraseña fuerte y entra en el panel (
/wp-admin).
Mantenimiento y seguridad
- Actualiza WordPress, los temas y los plugins con frecuencia; borra los que no uses.
- Mantén el sistema al día:
sudo apt update && sudo apt upgrade -y. - Haz copia de la base de datos y del sitio, por ejemplo:
sudo mysqldump wordpress > wordpress.sqly una copia de/var/www/midominio.com. Guarda las copias fuera del VPS. - Usa contraseñas largas y, si puedes, doble factor en el administrador.
Para webs en PHP, React, Astro, Next.js o Python sin administrar un servidor, mira nuestro Web Hosting.
Preguntas frecuentes
¿Cuánta RAM necesita WordPress?
Un sitio pequeño funciona con poca memoria; con mucho tráfico o muchos plugins conviene más. Empieza con 2 GB y mide.
Me sale «502 Bad Gateway»
Casi siempre el socket de PHP-FPM no coincide con el de Nginx. Revisa ls /run/php/ y la línea fastcgi_pass, y reinicia con sudo systemctl restart php8.3-fpm (con tu versión).
¿Puedo subir archivos grandes?
Sube también upload_max_filesize y post_max_size en php.ini (en /etc/php/VERSIÓN/fpm/php.ini) además de client_max_body_size de Nginx.