Instalar un Sitio Web de WordPress en un VPS con Debian

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.

Opciones ChatGPT

Opciones ChatGPT

Opciones gratuitas y de pago del servicio ChatGPT (por OpenAI), así como las diferencias más importantes entre ellas:


✅ Versión gratuita

  • Se puede usar sin coste para uso básico, chatear, hacer preguntas, etc. (cloudeagle.ai)
  • Algunas limitaciones típicas:
  • Modelos menos potentes o se cambia a versiones ligeras cuando está muy ocupado. (DeltaTimeNews)
  • Posibles tiempos de espera o acceso limitado durante horas de alta demanda. (allmoneylab.com)
  • Funciones avanzadas (como herramientas especializadas, integración de archivos, proyectos) pueden estar ausentes o limitadas. (nexos.ai)

💡 Versión de pago (“Plus” u otros planes)

  • El plan más común es ChatGPT Plus (unos US $20/mes típicamente) para usuarios individuales. (cloudeagle.ai)
  • Qué aporta sobre la versión gratuita:
  • Acceso a modelos más potentes y avanzados (mejor “razonamiento”, mayor contexto, etc.). (DeltaTimeNews)
  • Menos probabilidades de encontrar la “capacidad completa” ocupada o de que el servicio esté restringido. (allmoneylab.com)
  • Funciones extra como subida de archivos, análisis de datos, generación de imágenes, etc., que pueden estar más disponibles o más potentes en la versión de pago. (overchat.ai)
  • También existen planes para empresas o equipos con precios distintos y características adicionales (más límites, uso profesional, etc.). (cloudeagle.ai)

🔍 Tabla resumida rápida

CaracterísticaVersión gratuitaVersión de pago (Plus / equipo)
PrecioUS $0US $20/mes aprox. (o más para empresas)
Acceso al modelo más avanzadoLimitado / modelo “ligero”Acceso a modelos más potentes
Prioridad de servicioMenor prioridadPrioridad mayor, menos interrupciones
Funciones extra (imágenes, archivos, proyectos)LimitadasMás completas o disponibles
Uso profesional o equipoAdecuada para uso informalMejor para uso intensivo, profesional

Instalar un certificado SSL gratuito de Let’s Encrypt en un VPS

Instalar un certificado SSL gratuito de Let’s Encrypt en un VPS

Para instalar un certificado SSL gratuito de Let’s Encrypt en un VPS, puedes usar herramientas como Certbot o paneles como CloudPanel o cPanel, dependiendo de tu configuración.

Aquí tienes una guía general paso a paso para hacerlo manualmente con Certbot, que es la herramienta oficial recomendada por Let’s Encrypt:

Requisitos previos

  • Un VPS con acceso root (por SSH)
  • Un nombre de dominio apuntando a la IP del VPS
  • Un servidor web instalado (como Apache o Nginx)

🔐 Instalación con Certbot (método manual)

  1. Accede a tu VPS por SSH: ssh root@tu_dominio.com
  2. Instala Certbot:

En Debian/Ubuntu:

sudo apt update sudo apt install certbot python3-certbot-nginx

En CentOS/RHEL:

sudo yum install epel-release sudo yum install certbot python3-certbot-nginx

SOLICITA EL CERTIFICADO

Para Nginx:

sudo certbot --nginx

Para Apache:

sudo certbot --apache
  1. Sigue las instrucciones:
    • Certbot detectará tus dominios configurados y te preguntará si deseas redirigir todo el tráfico a HTTPS.
  2. Verifica la renovación automática:
    • Let’s Encrypt emite certificados válidos por 90 días.
    • Certbot instala automáticamente un cron job para renovarlos.

Puedes probarlo con:

sudo certbot renew --dry-run

Cuando hay que renovar el Certificado SSL

Los certificados de Let’s Encrypt deben renovarse cada 90 días.

Esto es una política estándar de Let’s Encrypt para mejorar la seguridad. Aquí tienes los detalles clave:

📅 Frecuencia de renovación

  • Validez: 90 días desde la emisión
  • Recomendación: Renovar alrededor del día 60 para evitar expiraciones accidentales

Renovación automática con Certbot

Si usaste Certbot para instalar el certificado, probablemente ya esté configurado para renovarse automáticamente mediante un cron job o un timer de systemd.

Puedes verificarlo ejecutando:

sudo certbot renew --dry-run

Este comando simula la renovación para confirmar que todo funciona correctamente.

⚠️ ¿Qué pasa si no se renueva?

  • El sitio web mostrará advertencias de seguridad a los visitantes
  • Los navegadores bloquearán el acceso por HTTPS
  • Podrías perder posicionamiento SEO y confianza de los usuarios
Como adjuntar un Plugin a WordPress.org

Como adjuntar un Plugin a WordPress.org

Instrucciones detalladas para saber como adjuntar un Plugin a WordPress.org. Para subir un plugin al repositorio oficial de WordPress.org 
 necesitas cumplir con requisitos técnicos, legales y de calidad: tener un plugin funcional, seguir las directrices de seguridad y licencias, y pasar una revisión manual.

Requisitos técnicos

  • Estructura del plugin: Debe estar correctamente organizado con archivos como readme.txtplugin-name.php, y carpetas de recursos si aplica.
  • Archivo readme.txt: Obligatorio. Debe seguir el formato oficial e incluir:
    • Nombre del plugin
    • Descripción
    • Versión
    • Autor
    • Licencia
    • Etiquetas
    • Requisitos mínimos de WordPress y PHP
  • Compatibilidad: Debe funcionar con la última versión estable de WordPress.
  • Seguridad: No debe incluir vulnerabilidades conocidas, funciones inseguras (como eval() sin control), ni puertas traseras.

Requisitos legales

  • Licencia GPL o compatible: Todo el código debe estar bajo la licencia GNU GPL v2 o superior.
  • Sin contenido comercial cerrado: No se permite incluir código que requiera pago para funcionar (puedes enlazar a versiones premium, pero no bloquear funciones básicas).
  • Sin spam ni rastreadores ocultos: No se permite insertar enlaces ocultos, publicidad engañosa ni recopilación de datos sin consentimiento.

🔍 Revisión y proceso de envío

  1. Accede con tu cuenta WordPress.org: https://wordpress.org/plugins/developers/add/
  2. Sube el archivo ZIP del plugin.
  3. El equipo de revisión lo analiza manualmente (tarda entre 1 y 10 días).
  4. Si se aprueba, recibirás acceso SVN para subir nuevas versiones y gestionar tu plugin.

Buenas prácticas recomendadas

  • Usa funciones y APIs oficiales de WordPress.
  • Documenta bien tu código.
  • Evita conflictos con otros plugins (prefijos únicos).
  • Incluye soporte básico y actualizaciones periódicas.

Redactar un buen readme.txt para tu plugin de WordPress.org  es clave para que sea aprobado y bien entendido por los usuarios. Este archivo describe tu plugin, sus funciones, requisitos y cómo usarlo. Aquí te explico cómo estructurarlo correctamente:

📄 Estructura básica del readme.txt

✅ Consejos clave

  • Usa etiquetas claras para que el plugin sea fácil de encontrar.
  • Incluye capturas de pantalla si es visual.
  • Mantén el changelog actualizado con cada versión.
  • Asegúrate de que el texto esté en inglés si lo vas a subir al repositorio oficial (aunque puedes incluir traducciones).

Plugin Contador de Visitas Simple

Este es un Plugin para WordPress, que cuenta las visitas a las entradas y las páginas de un sitio web construido con WordPress.

Plugin Contador de Visitas

Contador de Visitas Simple.zip

Mantenimiento de un VPS en Debian 10

El mantenimiento de un VPS con Debian 10 incluye actualizaciones de seguridad, limpieza del sistema, monitoreo de recursos y copias de seguridad regulares. Estas tareas aseguran estabilidad, rendimiento y protección frente a amenazas.

🔧 Mantenimiento básico recomendado

1. Actualización del sistema

Mantén tu VPS al día con los últimos parches:

bash

apt update && apt upgrade -y && apt autoremove -y

También puedes usar apt dist-upgrade para actualizaciones más profundas.

2. Limpieza de paquetes y caché

Elimina paquetes innecesarios y limpia la caché:

bash

apt clean && apt autoclean

3. Verificación del sistema de archivos

Comprueba y repara errores:

bash

fsck -Af -V

(Usar con precaución, preferiblemente en modo de recuperación)

4. Monitoreo de recursos

Instala herramientas como:

  • htop para ver procesos activos
  • df -h para revisar espacio en disco
  • free -h para memoria RAM

5. Firewall y seguridad

Configura iptables o usa ufw:

bash

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

Instala fail2ban para proteger contra intentos de acceso no autorizados.

6. Copias de seguridad

Haz backups regulares con herramientas como:

  • rsync
  • borgbackup
  • duplicity

Antes de cualquier cambio importante, realiza una copia completa del sistema.

🛠️ Scripts útiles

Puedes automatizar el mantenimiento con scripts como este de GitHub: 🔗 Debian_Maintenance – RichyKunBv

Este script incluye:

  • Actualización del sistema
  • Limpieza de caché
  • Verificación SMART del disco
  • Cierre de procesos de alto consumo
  • Reinicio de servicios de red

📌 Consejos adicionales

  • Revisa los logs del sistema: journalctl/var/log/syslog/var/log/auth.log
  • Configura alertas con monit o Nagios
  • Usa cron para programar tareas automáticas