HELPER VPS

Instalación de WordPress en un VPS: método para cada imagen, WordPress, LEMP y Docker

Si instalas WordPress en tu propio servidor, decides todo: plugins, temas y configuración del servidor. Según la imagen que elijas al crear el servidor, elige y sigue el método de instalación que mejor encaja.

Elige uno de los tres métodos

En HELPER VPS, con solo elegir la imagen al crear el servidor, los pasos de preparación de WordPress se reducen mucho. Basta con elegir el método que encaja con tu situación.

  • Imagen WordPress: se instalan Nginx, MySQL, PHP y WordPress sobre Ubuntu 24.04. Solo tienes que terminar la pantalla de instalación en el navegador, así que es la forma más rápida de abrir un blog.
  • Imagen LEMP: instalas tú WordPress en un servidor con Nginx, MySQL y PHP ya preparados. Ideal para tener varios sitios en un servidor o decidir tú la estructura de carpetas y la configuración.
  • Imagen Docker: levanta WordPress y la base de datos como contenedores. Cómodo para mover el sitio a otro servidor o crear el mismo entorno varias veces.

Un blog pequeño puede comenzar con el plan general más pequeño de 12GB, mientras que las tiendas en línea o sitios con mucho tráfico cargan las páginas más rápido en un servidor NVMe de alto rendimiento con disco rápido. Las recomendaciones de tamaño están en la página VPS WordPress.

Primero, conecta el dominio

Si vas a usar un dominio, conéctalo antes de instalar y obtendrás también el certificado HTTPS de una vez. En el panel DNS de donde compraste el dominio, crea estos dos registros.

  • Registro A: nombre @ (y www), valor la dirección IPv4 del servidor
  • Registro AAAA: nombre @ (y www), valor la dirección IPv6 del servidor

Los registros suelen tardar de unos minutos a unas horas en propagarse. Si ejecutas ping -c 3 example.com en el servidor y aparece la IP de tu servidor, ya está listo. En los comandos de abajo, cambia example.com por tu dominio.

Método 1. Empezar al instante con la imagen WordPress

  • En la pantalla de creación del servidor, elige región y tamaño y selecciona WordPress en la lista de imágenes.
  • Cuando el servidor pase a en ejecución, abre http://YOUR_SERVER_IP en el navegador.
  • Elige el idioma y define título del sitio, usuario administrador, contraseña y email, y la instalación termina.
  • Entra al panel de administración con http://YOUR_SERVER_IP/wp-admin.

Pon una contraseña de administrador larga y compleja, y en lugar de admin usa un nombre de usuario que solo conozcas tú para protegerte mejor de intentos de acceso. Para conectar el dominio y HTTPS, sigue tal cual el paso de HTTPS de abajo.

Método 2. Instalación directa en un servidor LEMP

La imagen LEMP ya tiene instalados Nginx, MySQL y PHP-FPM. Solo hay que añadir las extensiones de PHP que necesita WordPress, la base de datos y la configuración del sitio. Parte de Ubuntu 24.04, y el orden es el mismo en otras versiones de Ubuntu y en Debian.

Paso 1. Instalar extensiones de PHP

Terminal
apt update
apt install -y php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-imagick
php -v
ls /run/php/

php -v muestra la versión de PHP, y ls /run/php/ el nombre del socket de PHP-FPM. Ubuntu 24.04 trae PHP 8.3, así que verás php8.3-fpm.sock, y Debian 13 trae PHP 8.4, así que verás php8.4-fpm.sock. Usa tal cual ese nombre en la configuración de Nginx de abajo.

Paso 2. Crear la base de datos y el usuario

Si ejecutas mysql conectado como root, entras en MySQL sin contraseña. Con las cuatro líneas de abajo creas una base de datos y un usuario solo para WordPress. Cambia la contraseña por una larga y apúntala.

mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'change_this_long_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Paso 3. Descargar WordPress

Terminal
cd /var/www
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz && rm latest.tar.gz
chown -R www-data:www-data /var/www/wordpress

Si cambias el propietario de la carpeta al usuario del servidor web (www-data), la pantalla de instalación del navegador crea ella misma el archivo de configuración, y plugins y temas también se instalan directamente desde el panel de administración.

Paso 4. Configurar el sitio en Nginx

/etc/nginx/sites-available/wordpress
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/wordpress;
    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;
    }
}
Terminal
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Si nginx -t muestra syntax is ok, test is successful, la configuración es correcta. Si aún no tienes dominio, escribe _ en server_name y borra el enlace del sitio por defecto (/etc/nginx/sites-enabled/default) para que abra con la dirección IP.

Paso 5. Terminar la instalación en el navegador

Al abrir http://example.com aparece la pantalla de instalación. Introduce el nombre de base de datos wordpress, el usuario wpuser, la contraseña fijada en el paso 2 y el host localhost, define el título del sitio y la cuenta de administrador, y listo.

Método 3. Instalación con Docker Compose

En un servidor creado con la imagen Docker o en uno con Docker instalado por ti, levantas WordPress y MariaDB juntos con un solo archivo. Cambia las dos contraseñas por otras largas.

Terminal
mkdir -p /opt/wordpress && cd /opt/wordpress
cat > compose.yaml <<'EOF'
services:
  db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: wordpress
      MARIADB_USER: wpuser
      MARIADB_PASSWORD: change_this_long_password
      MARIADB_ROOT_PASSWORD: change_this_other_password
    volumes:
      - db:/var/lib/mysql
  wordpress:
    image: wordpress:latest
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: change_this_long_password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp:/var/www/html
volumes:
  db:
  wp:
EOF
docker compose up -d

Al abrir http://YOUR_SERVER_IP aparece la pantalla de instalación. Los datos de la base de datos ya están en el archivo, así que solo defines el título del sitio y la cuenta de administrador. Las entradas y archivos subidos quedan en el volumen wp y la base de datos en el volumen db, así que se mantienen aunque cambies los contenedores a una nueva versión.

Para añadir HTTPS a un sitio publicado con Docker, lo limpio es poner delante un proxy inverso. Es aún más sencillo con la imagen de Coolify o Dokploy, que añaden el certificado automáticamente con solo poner el dominio en pantalla.

Añadir el certificado HTTPS

Con la imagen WordPress y los servidores LEMP, obtienes con Certbot un certificado gratis de Let's Encrypt y lo aplicas al instante en Nginx. El dominio debe apuntar a la IP del servidor.

Terminal
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

Introduce tu email y acepta las condiciones: se emite el certificado y se añade HTTPS a la configuración de Nginx. Certbot renueva el certificado automáticamente. Después, en Ajustes > Generales del panel de WordPress, cambia la dirección de WordPress y la del sitio a https. Si usas firewall, abre ambos puertos con ufw allow 80,443/tcp.

Ajustes que conviene hacer tras la instalación

  • Enlaces permanentes: en Ajustes > Enlaces permanentes, elige el formato de nombre de entrada para tener direcciones fáciles de leer. La línea try_files de la configuración de Nginx de arriba gestiona estas direcciones.
  • Tamaño de subida: para subir imágenes grandes o archivos de temas, sube al mismo tamaño client_max_body_size de Nginx y upload_max_filesize y post_max_size de /etc/php/8.3/fpm/php.ini, y ejecuta systemctl restart php8.3-fpm.
  • Envío de correo: los correos de registro, recuperación de contraseña y avisos de pedidos se conectan con un plugin SMTP a los puertos 587 o 465 de un servicio de envío. Cómo hacerlo está en la guía de envío de correo.
  • Actualizaciones: mantén al día con regularidad el núcleo de WordPress, los plugins y los temas desde el panel de administración, y el servidor con apt update && apt upgrade -y.
  • Copias: las entradas y la base de datos son activos que no se pueden recrear. Activa las copias automáticas al crear el servidor o guarda copias con los métodos de la guía de copias de seguridad y snapshots.

Si quieres reinstalar desde cero, vuelve a elegir la imagen WordPress en la reinstalación de la página del servidor y volverás a un estado limpio. El disco se instala de nuevo, así que descarga antes las entradas que necesites con Herramientas > Exportar, y para el orden consulta la guía de reinstalación.

Guías relacionadas

Configuraciones que conviene hacer a continuación de esta guía.

Ver todas las guías