Guía fidedigna y paso a paso para instalar WordPress en un dominio genérico tu-sitio.com, incluyendo el subdominio www, la configuración del VirtualHost en Apache, la base de datos en MariaDB y el certificado SSL
📘 Guía de instalación de WordPress en tu-sitio.com
1. 🔧 Preparar el dominio y subdominio
En tu panel de DNS (ej. DonDominio):
- Registro A
- Nombre:
@ - Valor: IP pública de tu VPS
- Nombre:
- Registro A para www
- Nombre:
www - Valor: misma IP pública
- Nombre:
- (Opcional) Registro AAAA si usas IPv6
👉 Esto asegura que tanto tu-sitio.com como www.tu-sitio.com apunten al servidor.
2. 🖥️ Crear el VirtualHost en Apache
Edita o crea un archivo en /etc/apache2/sites-available/tu-sitio.conf:
apache
<VirtualHost *:80>
ServerName tu-sitio.com
ServerAlias www.tu-sitio.com
DocumentRoot /var/www/tu-sitio
<Directory /var/www/tu-sitio>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/tu-sitio_error.log
CustomLog ${APACHE_LOG_DIR}/tu-sitio_access.log combined
</VirtualHost>
Activar el sitio y reiniciar Apache:
bash
sudo a2ensite tu-sitio.conf
sudo systemctl reload apache2
3. 🗄️ Crear la base de datos en MariaDB
Accede a MariaDB:
bash
sudo mysql -u root -p
Crea la base de datos y usuario:
sql
CREATE DATABASE tu_sitio_db;
CREATE USER 'tu_sitio_user'@'localhost' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON tu_sitio_db.* TO 'tu_sitio_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4. 📥 Instalar WordPress
Descarga y descomprime:
bash
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo mv wordpress/* /var/www/tu-sitio/
Permisos:
bash
sudo chown -R www-data:www-data /var/www/tu-sitio
sudo chmod -R 755 /var/www/tu-sitio
5. 🔒 Instalar certificado SSL con Certbot
Instala Certbot:
bash
sudo apt install certbot python3-certbot-apache -y
Genera el certificado:
bash
sudo certbot --apache -d tu-sitio.com -d www.tu-sitio.com
👉 Elige la opción de redirigir todo el tráfico a HTTPS.
6. ⚙️ Configuración en WordPress
En el panel de administración:
- Dirección de WordPress (URL):
https://tu-sitio.com - Dirección del sitio (URL):
https://tu-sitio.com
En .htaccess asegúrate de tener:
apache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
7. 🔑 Recordatorio de acceso
Si olvidas la contraseña:
sql
UPDATE wp_users SET user_pass = MD5('NuevaClave2025!') WHERE user_login = 'admin';
👉 Luego cámbiala desde el panel para que se guarde con el hash moderno.
8. 📑 Checklist final
- DNS:
tu-sitio.comywww.tu-sitio.comapuntando a la IP del VPS - Apache: VirtualHost activo con
ServerNameyServerAlias - MariaDB: base de datos y usuario creados con permisos
- WordPress: instalado en
/var/www/tu-sitiocon permisos correctos - Certbot: SSL activo y redirección a HTTPS
- WordPress: URLs ajustadas a
https://tu-sitio.com
🔒 Cómo evitar interferencias entre sitios
- Cada dominio/subdominio debe tener su propio DocumentRoot en Apache.
En cada archivo de configuración (/etc/apache2/sites-available/*.conf) defines el ServerName, ServerAlias y el DocumentRoot correspondiente. 👉 Así Apache sabe qué carpeta servir según el dominio que se solicite.
Certificados SSL: cada dominio tiene su propio certificado. Certbot los instala y configura en el VirtualHost correspondiente, sin tocar los demás.
Bases de datos: cada WordPress debe usar su propia base de datos y usuario en MariaDB. 👉 Ejemplo: tu_sitio_db.
- Esto garantiza que no se mezclen usuarios ni contenido.
- Usuarios SFTP/SSH: si quieres máxima seguridad, cada sitio puede tener su propio usuario “enjaulado” en su directorio. Así evitas que un usuario acceda a los archivos de otro sitio.
✅ En resumen
Mientras mantengas:
- Directorios separados
- VirtualHosts separados
- Bases de datos separadas
- (Opcional) usuarios SFTP separados
👉 No habrá interferencia entre tus sitios. Apache y MariaDB gestionan cada uno de forma independiente.