El alojamiento de WordPress gestionado cobra por cada web y esconde los ajustes. En tu propio VPS tienes el servidor entero, tantas webs como aguante y control total sobre PHP y la caché. La pila clásica (Nginx, PHP-FPM, MariaDB) se instala en unos quince minutos en Ubuntu 24.04.
Antes de empezar: necesitas un plan con IP dedicada (los visitantes se conectan a los puertos 80/443; los planes NAT no aceptan tráfico web entrante) y un dominio cuyo registro A apunte al servidor. Micro-IP por $10 al mes es un hogar cómodo para una web normal.
1. Instala la pila
apt update
apt install -y nginx mariadb-server php8.3-fpm php8.3-mysql php8.3-curl \
php8.3-gd php8.3-intl php8.3-mbstring php8.3-xml php8.3-zip
2. Crea la base de datos
En Ubuntu, MariaDB deja entrar a root por el socket local, sin contraseña:
mariadb <<'SQL'
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'wp'@'localhost' IDENTIFIED BY 'use-a-long-random-password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp'@'localhost';
FLUSH PRIVILEGES;
SQL
3. Descarga WordPress
cd /tmp && curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
mv wordpress /var/www/example.com
chown -R www-data:www-data /var/www/example.com
4. Configura Nginx
cat > /etc/nginx/sites-available/example.com <<'EOF'
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.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 ~ /\.(?!well-known) { deny all; }
}
EOF
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
La línea try_files es la que hace funcionar los enlaces permanentes bonitos: el equivalente en Nginx de las reglas .htaccess de WordPress.
Sube el límite de subida de PHP para que coincida con client_max_body_size:
sed -i 's/^upload_max_filesize.*/upload_max_filesize = 64M/; s/^post_max_size.*/post_max_size = 64M/' /etc/php/8.3/fpm/php.ini
systemctl restart php8.3-fpm
5. HTTPS gratis
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot edita la configuración de Nginx para HTTPS y configura la renovación automática.
6. Termina en el navegador
Abre https://example.com, introduce el nombre de la base (wordpress), el usuario (wp) y la contraseña del paso 2, y crea tu cuenta de administrador. Elige un nombre de administrador distinto de «admin».
Rápido y seguro
- Cortafuegos:
ufw allow 22/tcp && ufw allow 'Nginx Full' && ufw enable. - Actualizaciones: activa en el panel las actualizaciones automáticas del núcleo de WordPress y, para el servidor, las actualizaciones de seguridad automáticas.
- Caché: un plugin de caché de páginas marca más diferencia que cualquier ajuste del servidor en una máquina pequeña.
- Copias de seguridad: Managed Backups guardan puntos de restauración diarios de todo el servidor ($2/mes, gratis en planes anuales). Para una copia portátil, añade
mysqldump wordpress > wp.sqly la carpetawp-content. - Memoria: en servidores de 1 GB, añade un archivo swap de 2 GB.
Relacionado
- VPS para un sitio web
- Proxy inverso Nginx con HTTPS
- VPS para Plausible Analytics: estadísticas sin cookies para tu web
Comentarios
Aún no hay comentarios. Sé el primero.