Contents
Instalación de WordPress con Nginx y PHP-FPM en Ubuntu 22.04
En este artículo se describe paso a paso la implementación de un sitio de WordPress bajo el servidor web Nginx con PHP-FPM en un entorno Ubuntu 22.04. Se cubren desde los requisitos previos hasta la puesta en producción, aportando consejos de seguridad y optimización.
Requisitos Previos
- Un servidor con Ubuntu 22.04 LTS (recomendado).
- Acceso root o usuario con permisos sudo.
- Dominio apuntando al servidor (ej: midominio.com).
- Puertos 80 y 443 abiertos en el firewall.
1. Actualizar el Sistema e Instalar Nginx
Lo primero es asegurarnos de disponer de las últimas versiones de paquetes:
sudo apt update sudo apt upgrade -y
Instalamos Nginx:
sudo apt install nginx -y
Verificar que Nginx esté activo:
sudo systemctl status nginx
2. Instalar y Configurar PHP-FPM
Instalamos PHP 8.1 y las extensiones necesarias:
sudo apt install php8.1-fpm php8.1-mysql php8.1-xml php8.1-curl php8.1-gd php8.1-mbstring php8.1-zip -y
Comprobamos que el servicio php8.1-fpm esté activo:
sudo systemctl status php8.1-fpm
Extensiones Recomendadas
Extensión | Función |
---|---|
php8.1-mysql | Conexión a bases de datos MySQL/MariaDB |
php8.1-xml | Procesamiento XML y RSS |
php8.1-gd | Manipulación de imágenes |
php8.1-curl | Comunicación HTTP externa |
php8.1-mbstring | Soporte multibyte |
php8.1-zip | Compresión ZIP |
3. Configurar la Base de Datos MySQL/MariaDB
Instalamos el servidor de base de datos:
sudo apt install mariadb-server -y
Ejecutamos el script de seguridad:
sudo mysql_secure_installation
Ingresamos a la consola y creamos la base de datos y el usuario de WordPress:
sudo mysql -u root CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci CREATE USER wp_user@localhost IDENTIFIED BY tu_password_segura GRANT ALL PRIVILEGES ON wordpress_db. TO wp_user@localhost FLUSH PRIVILEGES EXIT
4. Descargar y Preparar WordPress
Nos ubicamos en /var/www/ y descargamos la última versión:
cd /var/www/ sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz sudo mv wordpress midominio.com sudo rm latest.tar.gz
Asignamos permisos al directorio:
sudo chown -R www-data:www-data /var/www/midominio.com sudo find /var/www/midominio.com/ -type d -exec chmod 750 {} sudo find /var/www/midominio.com/ -type f -exec chmod 640 {}
5. Configuración del Servidor Nginx
Creamos un bloque de servidor para nuestro dominio:
sudo nano /etc/nginx/sites-available/midominio.com
Ejemplo de contenido:
server { listen 80 server_name midominio.com www.midominio.com root /var/www/midominio.com index index.php index.html access_log /var/log/nginx/midominio.access.log error_log /var/log/nginx/midominio.error.log location / { try_files uri uri/ /index.phpargs } location ~ .php { include snippets/fastcgi-php.conf fastcgi_pass unix:/run/php/php8.1-fpm.sock } location ~ .(jscsspngjpgjpeggifsvgico) { expires max log_not_found off } }
Activamos el bloque y comprobamos la configuración:
sudo ln -s /etc/nginx/sites-available/midominio.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
6. Ajustes de Firewall
Si utilizas ufw:
sudo ufw allow Nginx Full sudo ufw enable
Accede a http://midominio.com y completa el asistente de configuración de WordPress, introduciendo los datos:
- Base de datos:
wordpress_db
- Usuario:
wp_user
- Contraseña:
tu_password_segura
- Host:
localhost
- Prefijo de tablas:
wp_
(recomendado dejarlo por defecto)
8. (Opcional) Certificado SSL con Let’s Encrypt
Para un entorno de producción es altamente recomendable activar HTTPS. Utilizaremos Certbot:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d midominio.com -d www.midominio.com
Certbot configurará automáticamente redirecciones HTTP→HTTPS y renovaciones automáticas.
Conclusión
La instalación de WordPress sobre Nginx y PHP-FPM en Ubuntu 22.04 proporciona un entorno ligero, eficiente y seguro. Con este proceso tendrás un sitio listo para producción, optimizable con cachés, CDN y escalable a futuras mejoras. Para más información oficial, consulta:
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |