WordPress es uno de los sistemas de gestión de contenidos (CMS) más utilizados de Internet. En esta guía vamos a instalarlo desde cero en un VPS con Ubuntu Server 24.04 LTS, usando Apache, MySQL, PHP 8.3 y certificados HTTPS gratuitos de Let’s Encrypt.
Actualización de octubre de 2026: la primera versión de este artículo estaba basada en Ubuntu 20.04 y utilizaba un PPA externo para instalar PHP 8.2. El procedimiento se ha actualizado completamente para Ubuntu 24.04 LTS. También se han eliminado las capturas y pasos que ya no corresponden al proceso actual.
Requisitos
WordPress recomienda actualmente PHP 8.3 o superior, MySQL 8.0 o superior —o MariaDB 10.11 o superior— y HTTPS. Ubuntu 24.04 ofrece PHP 8.3 y MySQL 8.0 desde sus repositorios oficiales, por lo que no necesitamos repositorios de terceros.
- VPS o servidor con Ubuntu Server 24.04 LTS.
- Usuario con acceso SSH y privilegios
sudo. - Dominio o subdominio apuntando a la IP pública del servidor.
- Puertos 80/TCP y 443/TCP accesibles desde Internet.
- Al menos 1–2 GB de RAM para un sitio pequeño; WooCommerce, muchos plugins o tráfico elevado pueden requerir más.
1. Actualizar Ubuntu 24.04
Conéctate mediante SSH y actualiza primero el sistema:
sudo apt update
sudo apt full-upgrade
Si se actualizó el kernel o algún componente fundamental, reinicia el servidor:
sudo reboot
Después de reconectar puedes verificar la versión instalada:
lsb_release -a
Configurar UFW
Si vas a utilizar UFW, permite SSH antes de activarlo para no bloquear tu acceso remoto. Después habilita el perfil completo de Apache:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
Si el proveedor del VPS utiliza además un firewall o security group externo, abre también allí los puertos 80 y 443.
2. Instalar MySQL 8.0
Ubuntu 24.04 proporciona MySQL 8.0 desde sus repositorios oficiales:
sudo apt install mysql-server
sudo systemctl enable --now mysql
sudo systemctl status mysql --no-pager
En Ubuntu el usuario administrativo local de MySQL se autentica normalmente mediante auth_socket, así que podemos entrar como administrador con:
sudo mysql
Crear la base de datos y el usuario de WordPress
Dentro de MySQL crea una base de datos y un usuario exclusivo. Sustituye la contraseña del ejemplo por una realmente larga y única:
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'UnaClaveMuyLargaYUnica';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EXIT;
No utilices el usuario root de MySQL en WordPress. El usuario wordpress solo necesita permisos sobre su propia base de datos.
3. Instalar Apache 2
sudo apt install apache2
sudo systemctl enable --now apache2
sudo systemctl status apache2 --no-pager
Al visitar temporalmente la IP pública del servidor por HTTP deberías ver la página predeterminada de Apache:

WordPress utiliza reglas de reescritura para los enlaces permanentes. Activa mod_rewrite:
sudo a2enmod rewrite
sudo systemctl reload apache2
4. Instalar PHP 8.3
No es necesario añadir ppa:ondrej/php. Ubuntu 24.04 ya proporciona PHP 8.3 y cumple los requisitos actuales de WordPress.
Instala PHP, su módulo para Apache y las extensiones habituales:
sudo apt install php libapache2-mod-php php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-imagick php-opcache php-bcmath curl
Comprueba la versión y los módulos principales:
php -v
php -m | grep -E 'bcmath|curl|dom|exif|fileinfo|gd|imagick|intl|mbstring|mysqli|openssl|xml|zip|Zend OPcache'
Ajustar php.ini
Con Apache y libapache2-mod-php, el archivo principal es /etc/php/8.3/apache2/php.ini:
sudo nano /etc/php/8.3/apache2/php.ini
Para un sitio general puedes comenzar con estos límites y ajustarlos luego según la carga real:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
max_input_time = 120
sudo apache2ctl configtest
sudo systemctl restart apache2
Para servidores con carga alta puede ser preferible utilizar PHP-FPM con el MPM event de Apache, pero para esta instalación inicial el módulo de Apache simplifica el procedimiento.
5. Crear el VirtualHost de Apache
Usaremos un directorio independiente para el sitio. Sustituye misitio.com por tu dominio real:
sudo mkdir -p /var/www/misitio.com/public_html
sudo nano /etc/apache2/sites-available/misitio.com.conf
<VirtualHost *:80>
ServerName misitio.com
ServerAlias www.misitio.com
DocumentRoot /var/www/misitio.com/public_html
<Directory /var/www/misitio.com/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/misitio.com-error.log
CustomLog ${APACHE_LOG_DIR}/misitio.com-access.log combined
</VirtualHost>
Activa el sitio y valida la sintaxis antes de recargar Apache:
sudo a2ensite misitio.com.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Si este será el único sitio alojado en el VPS puedes desactivar el VirtualHost predeterminado:
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
6. Descargar e instalar WordPress
Descarga siempre la versión estable actual directamente desde WordPress.org. El asistente permite seleccionar el idioma, así que no hace falta descargar un paquete distinto para español:
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo cp -a wordpress/. /var/www/misitio.com/public_html/
Para esta instalación sencilla de un único sitio asignaremos los archivos a www-data para permitir actualizaciones desde el panel:
sudo chown -R www-data:www-data /var/www/misitio.com/public_html
sudo find /var/www/misitio.com/public_html -type d -exec chmod 755 {} \;
sudo find /var/www/misitio.com/public_html -type f -exec chmod 644 {} \;
En servidores con varios usuarios o requisitos de seguridad más estrictos conviene separar el propietario de despliegue del usuario del servidor web y usar permisos más granulares.
7. Comprobar el DNS
Antes de pedir el certificado HTTPS, el dominio debe resolver hacia el VPS:
sudo apt install dnsutils
dig +short misitio.com
dig +short www.misitio.com
Si existe un registro AAAA, debe apuntar a una IPv6 realmente configurada en el servidor. Un AAAA incorrecto puede provocar que Let’s Encrypt falle durante la validación.
8. Activar HTTPS con Let’s Encrypt
Para una instalación actual utilizaremos Certbot mediante Snap, siguiendo el método recomendado por el proyecto Certbot.
Si el servidor tenía una instalación antigua de Certbot desde APT, elimínala primero. Si no estaba instalada, APT simplemente lo indicará:
sudo apt remove certbot python3-certbot-apache
sudo apt install snapd
sudo snap install --classic certbot
sudo ln -sf /snap/bin/certbot /usr/local/bin/certbot
Solicita el certificado y permite que Certbot configure Apache automáticamente:
sudo certbot --apache -d misitio.com -d www.misitio.com
Comprueba el mecanismo de renovación:
sudo certbot renew --dry-run
No es necesario crear el antiguo cron manual de la versión original del artículo. La instalación actual de Certbot configura su propio mecanismo de renovación automática.
9. Completar el asistente de WordPress
Entra en https://misitio.com/. WordPress debería mostrar su asistente web. Las siguientes capturas siguen siendo útiles para reconocer las distintas pantallas del proceso:







Cuando el instalador solicite la conexión a MySQL utiliza:
- Base de datos:
wordpress. - Usuario:
wordpress. - Contraseña: la clave creada anteriormente.
- Servidor:
localhost. - Prefijo: puedes mantener
wp_; cambiarlo no sustituye otras medidas de seguridad.
Para la cuenta administradora evita nombres previsibles como admin, usa una contraseña única y activa autenticación de dos factores cuando el sitio esté funcionando.
10. Proteger wp-config.php
Después de que WordPress cree su archivo de configuración restringe sus permisos:
sudo chmod 600 /var/www/misitio.com/public_html/wp-config.php
Con el esquema de propiedad utilizado en esta guía Apache seguirá pudiendo leerlo porque pertenece a www-data. Si posteriormente cambias usuarios o grupos, comprueba siempre que PHP conserve acceso de lectura.
11. Comprobaciones finales
systemctl status apache2 --no-pager
systemctl status mysql --no-pager
php -v
mysql --version
apache2ctl -v
sudo apache2ctl configtest
sudo certbot certificates
Dentro de WordPress abre Herramientas → Salud del sitio y revisa HTTPS, REST API, tareas programadas y extensiones PHP.
Buenas prácticas antes de publicar el sitio
- Mantén Ubuntu, WordPress, plugins y temas actualizados.
- Elimina plugins y temas que no utilices.
- No expongas MySQL a Internet cuando la base de datos esté en el mismo VPS.
- Realiza copias de seguridad de archivos y base de datos y prueba periódicamente su restauración.
- Utiliza contraseñas únicas y 2FA para cuentas administrativas.
- Para sitios con carga importante considera PHP-FPM, caché de página, object cache y CDN en lugar de limitarte a aumentar memoria y tiempos de PHP.
Fuentes oficiales
- WordPress.org — requisitos.
- WordPress Hosting Handbook — entorno del servidor.
- Ubuntu Server — PHP.
- Ubuntu Server — MySQL.
- Ubuntu Server — Apache2 y VirtualHosts.
- Certbot — Apache mediante Snap.
Conclusión
Ubuntu Server 24.04 LTS proporciona desde sus repositorios oficiales todo lo necesario para una instalación moderna de WordPress: Apache, MySQL 8.0 y PHP 8.3. Esto elimina varios pasos de la antigua guía y reduce dependencias externas. Con HTTPS, copias de seguridad y actualizaciones periódicas, esta configuración constituye una base sólida para un WordPress autogestionado.
