🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo instalar y configurar Nginx en Linux para WordPress

Actualizado el 22 de enero de 2026

Antes de empezar: ¿Qué necesitas para instalar Nginx con WordPress?

Instalar y configurar nginx wordpress no es tan complicado como parece, pero requiere que tengas claros algunos conceptos básicos. Nginx (se pronuncia "engine-x") es un servidor web muy rápido y eficiente, ideal para WordPress porque consume menos recursos que Apache y maneja mejor el tráfico concurrente.

Para seguir esta guía de instalar nginx linux, necesitarás:

  • Un servidor VPS o dedicado con Ubuntu 20.04, 22.04 o 24.04 (también funciona con Debian)
  • Acceso SSH con permisos de root o un usuario con sudo
  • Un dominio apuntando a la IP de tu servidor (puedes usar una IP pública si es para pruebas)
  • Conocimientos básicos de comandos en terminal (no te preocupes, iremos paso a paso)

[INFO] Si estás usando un panel de control como Syspanel (accesible por el puerto 2106), algunas configuraciones ya vienen predefinidas, pero esta guía te servirá para entender qué hay bajo el capó y poder personalizarlo todo.


Paso 1: Actualizar el sistema e instalar Nginx

Lo primero que debes hacer es conectarte a tu servidor por SSH y actualizar los repositorios del sistema. Esto asegura que tengas las últimas versiones de los paquetes y parches de seguridad.

Abre tu terminal y ejecuta:

sudo apt update && sudo apt upgrade -y

Este comando actualiza la lista de paquetes disponibles y actualiza todos los programas instalados. Puede tardar un par de minutos dependiendo de la velocidad de tu servidor.

Ahora sí, instala Nginx con:

sudo apt install nginx -y

Una vez terminada la instalación, verifica que el servicio esté activo:

sudo systemctl status nginx

Deberías ver algo como "active (running)" en color verde. Si no es así, inícialo con:

sudo systemctl start nginx

Y habilítalo para que arranque automáticamente al reiniciar el servidor:

sudo systemctl enable nginx

[TIP] Puedes verificar que Nginx funciona escribiendo la IP de tu servidor en el navegador. Deberías ver la página de bienvenida por defecto de Nginx.


Paso 2: Instalar PHP-FPM para trabajar con Nginx

Nginx no procesa PHP por sí mismo, necesita un intermediario llamado php-fpm nginx. PHP-FPM (FastCGI Process Manager) es la versión moderna de PHP que se comunica con Nginx de forma eficiente.

Para WordPress necesitas PHP 8.1 o superior (recomendamos PHP 8.2 o 8.3 para mejor rendimiento). Instala PHP-FPM junto con las extensiones más comunes que WordPress requiere:

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

[INFO] Las extensiones php-curl, php-gd y php-zip son esenciales para instalar plugins y temas desde el panel de administración de WordPress. No te las saltes.

Comprueba que PHP-FPM está funcionando:

sudo systemctl status php8.3-fpm

El nombre del servicio puede variar según la versión de PHP que hayas instalado (php8.1-fpm, php8.2-fpm, etc.). Si todo está correcto, verás que está activo.


Paso 3: Crear la base de datos MySQL/MariaDB para WordPress

WordPress necesita una base de datos para guardar todo el contenido de tu web. Vamos a instalar MariaDB, que es un fork de MySQL totalmente compatible y más ligero:

sudo apt install mariadb-server -y

Inicia el servicio y asegúrate de que está activo:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Ahora ejecuta el script de seguridad que viene con MariaDB:

sudo mysql_secure_installation

Te hará varias preguntas. Responde de la siguiente manera:

  • Enter para la contraseña root actual (si no has puesto ninguna)
  • Cambia a autenticación unix_socket: N (no)
  • Cambia la contraseña root: Y (sí) y pon una contraseña segura
  • Eliminar usuarios anónimos: Y
  • Eliminar bases de datos de prueba: Y
  • Recargar privilegios: Y

Ahora crea la base de datos y un usuario específico para WordPress. Accede a MySQL:

sudo mysql -u root -p

Introduce la contraseña root que acabas de configurar. Después ejecuta estos comandos SQL (cambia los valores por los tuyos):

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

[WARNING] Usa una contraseña fuerte para el usuario de la base de datos. Nunca uses contraseñas como "123456" o "password". WordPress es uno de los CMS más atacados del mundo.


Paso 4: Descargar y configurar WordPress

Ahora vamos a descargar WordPress en el directorio raíz de tu sitio web. Normalmente se usa /var/www/html o /var/www/tudominio.com. Vamos a crear una estructura limpia:

sudo mkdir -p /var/www/tudominio.com
cd /var/www/tudominio.com
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz

Esto descarga WordPress, lo descomprime y mueve todos los archivos al directorio raíz. Ahora debemos asignar los permisos correctos para que Nginx y PHP puedan leer y escribir:

sudo chown -R www-data:www-data /var/www/tudominio.com
sudo chmod -R 755 /var/www/tudominio.com

[TIP] El usuario www-data es el que usa Nginx y PHP-FPM para ejecutar los archivos. Si no asignas los permisos correctamente, WordPress te pedirá credenciales FTP al intentar instalar plugins o temas.


Paso 5: Configurar Nginx para WordPress (el archivo de configuración)

Esta es la parte más importante de configurar nginx. Necesitamos crear un bloque de servidor (server block) que le diga a Nginx cómo manejar las peticiones de tu dominio.

Crea un archivo de configuración para tu sitio:

sudo nano /etc/nginx/sites-available/tudominio.com

Copia y pega esta configuración, adaptando los valores a tu caso:

server {
    listen 80;
    listen [::]:80;
    server_name tudominio.com www.tudominio.com;

    root /var/www/tudominio.com;
    index index.php index.html index.htm;

    client_max_body_size 64M;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
        expires max;
        log_not_found off;
        access_log off;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ /\. {
        deny all;
    }

    location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
    }
}

[WARNING] Ajusta la ruta del socket de PHP-FPM según tu versión. Si instalaste PHP 8.2, el socket será /var/run/php/php8.2-fpm.sock. Puedes verificar la ruta exacta con ls /var/run/php/.

Ahora activa la configuración creando un enlace simbólico en sites-enabled:

sudo ln -s /etc/nginx/sites-available/tudominio.com /etc/nginx/sites-enabled/

Elimina la configuración por defecto para evitar conflictos:

sudo rm /etc/nginx/sites-enabled/default

Comprueba que la configuración es correcta:

sudo nginx -t

Si todo está bien, el mensaje dirá "syntax is ok" y "test is successful". Ahora recarga Nginx para aplicar los cambios:

sudo systemctl reload nginx

Paso 6: Configurar PHP-FPM para optimizar WordPress

La configuración por defecto de PHP-FPM funciona, pero podemos ajustarla para que WordPress vaya más fluido. Edita el archivo de configuración de PHP-FPM:

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

Busca y modifica estos valores:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M

Guarda el archivo (Ctrl+O y luego Ctrl+X en nano) y reinicia PHP-FPM:

sudo systemctl restart php8.3-fpm

[INFO] Si tu web va a recibir mucho tráfico o vas a usar plugins de caché, estos valores te evitarán errores de "memoria agotada" y problemas al subir archivos grandes.


Paso 7: Instalar certificado SSL con Let's Encrypt

Hoy en día es imprescindible que tu web tenga HTTPS. Google penaliza las webs sin SSL y los navegadores muestran avisos de seguridad. Instala Certbot:

sudo apt install certbot python3-certbot-nginx -y

Y ejecuta la instalación del certificado:

sudo certbot --nginx -d tudominio.com -d www.tudominio.com

Certbot te pedirá tu email y aceptar los términos de servicio. También te preguntará si quieres redirigir HTTP a HTTPS. Selecciona la opción 2 para redirigir todo el tráfico a HTTPS.

[TIP] Certbot configura automáticamente la renovación del certificado. Puedes verificarlo con sudo certbot renew --dry-run.


Paso 8: Instalar y configurar WordPress desde el navegador

Ahora viene la parte fácil. Abre tu navegador y visita https://tudominio.com. Verás el asistente de instalación de WordPress.

  1. Selecciona tu idioma
  2. Introduce los datos de la base de datos que creaste antes:
    • Nombre de la base de datos: wordpress_db
    • Usuario: wp_user
    • Contraseña: la que pusiste
    • Servidor de la base de datos: localhost
    • Prefijo de tabla: wp_ (déjalo así)
  3. Haz clic en "Enviar"
  4. WordPress comprobará la conexión y te pedirá que continúes
  5. Configura el título de tu sitio, el usuario administrador, tu email y una contraseña segura
  6. Haz clic en "Instalar WordPress"

¡Felicidades! Ya tienes WordPress funcionando con Nginx. Ahora puedes entrar en https://tudominio.com/wp-admin para empezar a personalizar tu web.


Paso 9: Optimizaciones adicionales para Nginx y WordPress

Una vez que todo funciona, es hora de exprimir el rendimiento. Aquí tienes algunas optimizaciones recomendadas:

Habilitar la compresión gzip

Edita el archivo principal de Nginx:

sudo nano /etc/nginx/nginx.conf

Dentro del bloque http {, añade:

gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml application/json image/svg+xml;

Configurar la caché de Nginx

Crea un archivo de caché FastCGI:

sudo nano /etc/nginx/conf.d/fastcgi_cache.conf

Pega:

fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_valid 404 1m;
add_header X-FastCGI-Cache $upstream_cache_status;

Luego, en el server block de tu sitio, añade dentro de location ~ \.php$:

fastcgi_cache WORDPRESS;
fastcgi_cache_bypass $skip_cache;

[WARNING] La caché de Nginx puede causar problemas si usas plugins de caché en WordPress. Si notas que los cambios no se reflejan, limpia la caché con sudo rm -rf /var/run/nginx-cache/*.


Solución de problemas comunes

Error 502 Bad Gateway

Este error suele indicar que Nginx no puede comunicarse con PHP-FPM. Verifica:

sudo systemctl status php8.3-fpm

Y comprueba que la ruta del socket en tu configuración de Nginx coincide con la real.

Error 404 al acceder a páginas internas

Asegúrate de que la directiva try_files está correcta en tu configuración. Si usas permalinks personalizados, ve a Ajustes > Enlaces permanentes en WordPress y guarda de nuevo (a veces esto soluciona el problema).

Permisos denegados al subir archivos

Ejecuta:

sudo chown -R www-data:www-data /var/www/tudominio.com
sudo find /var/www/tudominio.com -type d -exec chmod 755 {} \;
sudo find /var/www/tudominio.com -type f -exec chmod 644 {} \;

Preguntas frecuentes (FAQ)

¿Nginx es mejor que Apache para WordPress?

Para la mayoría de los casos, sí. Nginx consume menos memoria y maneja mejor las conexiones concurrentes, lo que se traduce en tiempos de carga más rápidos. Apache es más fácil de configurar si vienes de entornos cPanel, pero Nginx es la opción preferida para sitios de alto rendimiento.

¿Qué versión de PHP necesito para WordPress?

WordPress funciona con PHP 7.4 o superior, pero recomendamos PHP 8.1 o 8.2 para mejor rendimiento y seguridad. Las versiones antiguas de PHP tienen vulnerabilidades conocidas.

¿Cómo puedo cambiar la configuración si uso Syspanel?

Si utilizas Syspanel (accesible en el puerto 2106), puedes gestionar dominios, bases de datos y certificados SSL desde su interfaz web. Sin embargo, los archivos de configuración de Nginx que se generan son editables manualmente y esta guía te servirá para entenderlos y personalizarlos.

¿Cuánto tarda en instalarse todo?

Si sigues esta guía paso a paso, en unos 20-30 minutos tendrás todo funcionando. La mayor parte del tiempo se va en esperar las actualizaciones del sistema y la descarga de paquetes.

¿Necesito un dominio para usar WordPress con Nginx?

No necesariamente. Puedes usar la IP de tu servidor para pruebas, aunque WordPress funcionará mejor con un dominio real. Si usas solo la IP, tendrás que adaptar la configuración del server block.


Conclusión y siguientes pasos

Has aprendido a instalar nginx linux y configurarlo para WordPress. Ahora tienes un servidor rápido, seguro y optimizado. Algunas recomendaciones para seguir mejorando:

  • Instala un plugin de caché como W3 Total Cache o WP Super Cache
  • Configura un firewall con UFW para limitar el acceso a tu servidor
  • Haz copias de seguridad periódicas de tu base de datos y archivos
  • Monitorea los logs de Nginx en /var/log/nginx/ para detectar problemas
  • Considera usar un CDN como Cloudflare para mejorar la velocidad global

Recuerda que la seguridad es un proceso continuo. Mantén siempre actualizado WordPress, los plugins y el sistema operativo del servidor.

[TIP] Guarda esta guía en tu marcador. Cuando necesites configurar otro sitio WordPress, solo tendrás que repetir los pasos 4 al 8, cambiando el nombre del dominio y los datos de la base de datos.

Si tienes alguna duda

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel