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
  • Registro A para www
    • Nombre: www
    • Valor: misma IP pública
  • (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.com y www.tu-sitio.com apuntando a la IP del VPS
  • Apache: VirtualHost activo con ServerName y ServerAlias
  • MariaDB: base de datos y usuario creados con permisos
  • WordPress: instalado en /var/www/tu-sitio con 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 ServerNameServerAlias 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.

Visitas:22