VPS con cPanel

VPS con cPanel

Un VPS con cPanel es la opción perfecta para un desarrollador. Te quita estrés, te evita errores y te da control total sin comandos.

¿Qué es un VPS con cPanel?

Un VPS con cPanel es un servidor privado que ya viene con:

  • cPanel (panel para webs)
  • WHM (panel para administrar el servidor)
  • Configuración prehecha
  • Seguridad básica
  • Certificados SSL automáticos
  • Gestión de correos
  • Copias de seguridad
  • Instaladores automáticos (WordPress, etc.)

Es como tener un servidor profesional, pero sin tener que tocar Linux.

¿Qué es un VPS sin cPanel?

Es un servidor “pelado” donde tú instalas:

  • Apache o Nginx
  • PHP
  • MariaDB
  • Certbot
  • Firewall
  • Configuración de dominios
  • Seguridad
  • Backups

Es más barato, pero tú haces todo. Y si te equivocas, puedes romper webs.

Comparativa directa (lo que te interesa de verdad)

CaracterísticaVPS con cPanelVPS sin cPanel
Facilidad de usoMuy fácilDifícil
Riesgo de romper algoMuy bajoAlto
Gestión de WordPressAutomáticaManual
SSLAutomáticoManual
BackupsIntegradosHay que configurarlos
SeguridadPreconfiguradaManual
PrecioMás caroMás barato
Ideal paraUsuarios que quieren estabilidadAdministradores Linux

Ventajas reales de un VPS con cPanel

✔ 1. No rompes nada sin querer

Todo se hace desde paneles visuales.

✔ 2. Crear webs es tan fácil como un clic

Literalmente: Dominios → Crear → Instalar WordPress.

✔ 3. SSL automático

Sin comandos, sin Certbot, sin líos.

✔ 4. Copias de seguridad integradas

Puedes restaurar tu web si algo falla.

✔ 5. WHM te permite crear cuentas separadas

Cada web queda aislada. Si una falla, las demás siguen funcionando.

✔ 6. Perfecto para alojar muchas webs

Tú tienes 15 sitios en tu hosting: un VPS con cPanel es ideal para eso.

Desventajas del VPS con cPanel

❗ 1. Precio más alto

cPanel cuesta entre 12 y 20 €/mes según proveedor.

❗ 2. Consumo de RAM

Necesita mínimo 4 GB RAM para ir fluido.

❗ 3. Menos libertad técnica

No puedes hacer configuraciones raras de servidor.

✔ VPS 4 GB RAM + cPanel

  • Suficiente para 10–20 webs
  • Estable
  • Fácil
  • Sin riesgo de romper nada

✔ VPS 8 GB RAM + cPanel

1. Precios de VPS con cPanel (España y Europa, 2026)

(precios sin IVA, valores medios actualizados a junio 2026)

🇪🇺 OVHcloud

  • VPS + licencia cPanel: desde 29,99 €/mes
    • VPS Essential 2 (2 vCores, 4 GB RAM, 80 GB SSD) → 17 €
    • Licencia cPanel Admin (hasta 5 cuentas) → 12,99 € 👉 Total: 29,99 €/mes

🇪🇸 Raiola Networks

  • VPS Administrado + cPanel incluido: desde 45 €/mes
    • 2 vCores, 4 GB RAM, 60 GB NVMe
    • cPanel + backups + soporte 24/7 👉 Total: 45 €/mes

🇪🇸 Webempresa

  • No ofrece VPS con cPanel.
  • Solo hosting con panel propio (no aplica).

🇩🇪 Hetzner

(muy barato, pero cPanel se paga aparte)

  • VPS CX32 (4 vCores, 8 GB RAM, 80 GB NVMe) → 8,79 €/mes
  • Licencia cPanel Admin → 15 €/mes 👉 Total: 23,79 €/mes (La opción más barata de Europa con cPanel.)

🇺🇸 Hostinger

  • VPS + cPanel opcional: desde 39,99 €/mes
    • VPS KVM 4 → 27 €
    • Licencia cPanel → 12,99 € 👉 Total: 39,99 €/mes

🇺🇸 A2 Hosting

  • VPS + cPanel incluido: desde 49,99 €/mes
    • 4 GB RAM, 150 GB SSD 👉 Total: 49,99 €/mes

Comparativa rápida (lo que te interesa)

ProveedorPrecio totalRAMcPanel incluidoComentario
Hetzner23,79 €8 GBNo (añadido)Más barato
OVH29,99 €4 GBNo (añadido)Equilibrado
Hostinger39,99 €4 GBNo (añadido)Caro para lo que ofrece
Raiola45 €4 GBSoporte español
A2 Hosting49,99 €4 GBMuy caro
Mantenimiento Mensual VPS

Mantenimiento Mensual VPS

Lee las instrucciones para un mantenimiento mensual seguro para tu VPS Debian, pensado para que lo ejecutes rápido y mantengas siempre el sistema ligero y bajo control:

Revisar espacio en disco

df -h
  • Comprueba que la partición / no supere el 80% de uso.
  • Si ves que se acerca al límite, pasa al siguiente paso de limpieza.

Analizar qué ocupa más espacio

sudo du -h --max-depth=1 /var | sort -h
  • Localiza directorios pesados (/var/log/var/lib/var/www).
  • Si /var/log/journal vuelve a crecer, haz limpieza.

Limpiar logs del sistema

sudo journalctl --vacuum-size=500M
  • Mantiene los logs binarios de systemd por debajo de 500 MB.
  • Si ya configuraste el límite en journald.conf, este comando asegura la limpieza manual.

Rotar y vaciar logs de Apache/Nginx

sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/apache2/error.log
  • Vacía los logs sin borrar los archivos.
  • Útil si tu web genera mucho tráfico.

Limpiar cachés de paquetes

sudo apt-get clean
sudo apt-get autoremove --purge
  • Estob orra paquetes descargados y dependencias que ya no se usan.
  • Recupera espacio en /var/cache/apt y /var/lib/apt.

Revisar bases de datos (si usas MariaDB/MySQL)

sudo du -h --max-depth=1 /var/lib/mysql | sort -h
  • Identifica tablas grandes.
  • Ejecuta OPTIMIZE TABLE en las que más ocupen para liberar espacio.

Comprobar procesos y servicios activos

htop
  • Revisa consumo de CPU y RAM.
  • Asegúrate de que no haya procesos zombis o servicios innecesarios.

Backup rápido

  • Haz copia de seguridad de /var/www y de tus bases de datos:
tar -czf backup-www-$(date +%F).tar.gz /var/www
mysqldump -u root -p --all-databases > backup-db-$(date +%F).sql
  • A continuación guarda los backups fuera del VPS si es posible.

✅ Resultado esperado

  • VPS siempre con espacio libre > 50%.
  • Logs controlados y nunca superiores a 500 MB.
  • Cachés y paquetes limpios.
  • Bases de datos optimizadas.
  • Backups recientes y listos para restaurar.

SCRIPT DE MANTENIMIENTO MENSUAL

Aquí tienes tu script de mantenimiento mensual para el VPS. Lo puedes guardar como vps-maintenance.sh, darle permisos de ejecución y lanzarlo cada vez que quieras revisar y limpiar tu servidor:

#!/bin/bash
# VPS Maintenance Script - Edition 
# Ejecutar con: sudo ./vps-maintenance.sh

echo "=====  Estado del disco ====="
df -h

echo ""
echo "===== 📂 Uso en /var ====="
du -h --max-depth=1 /var | sort -h

echo ""
echo "=====  Limpiando logs del sistema (máx 500MB) ====="
journalctl --vacuum-size=500M

echo ""
echo "=====  Limpiando logs de Apache ====="
truncate -s 0 /var/log/apache2/access.log 2>/dev/null
truncate -s 0 /var/log/apache2/error.log 2>/dev/null

echo ""
echo "=====  Limpiando cachés de paquetes ====="
apt-get clean
apt-get autoremove --purge -y

echo ""
echo "=====  Espacio en bases de datos ====="
du -h --max-depth=1 /var/lib/mysql | sort -h

echo ""
echo "===== ✅ Mantenimiento completado ====="
echo "Revisa arriba el estado del disco y bases de datos."

Pasos en tu VPS

  1. Entrar al editor y crear el archivo:
sudo nano /root/vps-maintenance.sh
  1. Pega dentro el contenido del script avanzado de mantenimiento.
  1. Guardar y salir de nano:
  • Pulsa CTRL + O → Enter para guardar.
  • Pulsa CTRL + X para salir.
  1. Dar permisos de ejecución al script:
sudo chmod +x /root/vps-maintenance.sh
  1. Probarlo manualmente:
sudo /root/vps-maintenance.sh

Cómo usarlo

1. Copia el contenido en un archivo:

nano vps-maintenance.sh

2. Dale permisos de ejecución:

chmod +x vps-maintenance.sh

3. Ejecútalo con privilegios:

sudo ./vps-maintenance.sh

✅ Resultado esperado

  • Verás un informe con el estado del disco y /var.
  • Los logs del sistema y Apache quedarán reducidos.
  • Cachés y paquetes sobrantes se eliminarán.
  • Tendrás un vistazo rápido al tamaño de tus bases de datos.

VERSION AVANZADA DEL SCRIPT DE MANTENIMIENTO

Aquí tienes la versión avanzada del script de mantenimiento que además de ejecutar las limpiezas y comprobaciones, guarda un informe con fecha en un archivo dentro de tu VPS (por ejemplo report-2025-12-06.txt). Con esto tendrás un histórico de cada mantenimiento mensual.

Script vps-maintenance.sh

#!/bin/bash
# VPS Maintenance Script -  Edition 
# Ejecutar con: sudo ./vps-maintenance.sh

# Nombre del informe con fecha actual
REPORT="/root/vps-report-$(date +%F).txt"

echo "===== 📊 Estado del disco =====" | tee $REPORT
df -h | tee -a $REPORT

echo "" | tee -a $REPORT
echo "===== 📂 Uso en /var =====" | tee -a $REPORT
du -h --max-depth=1 /var | sort -h | tee -a $REPORT

echo "" | tee -a $REPORT
echo "=====  Limpiando logs del sistema (máx 500MB) =====" | tee -a $REPORT
journalctl --vacuum-size=500M | tee -a $REPORT

echo "" | tee -a $REPORT
echo "=====  Limpiando logs de Apache =====" | tee -a $REPORT
truncate -s 0 /var/log/apache2/access.log 2>/dev/null
truncate -s 0 /var/log/apache2/error.log 2>/dev/null
echo "Logs de Apache vaciados" | tee -a $REPORT

echo "" | tee -a $REPORT
echo "=====  Limpiando cachés de paquetes =====" | tee -a $REPORT
apt-get clean
apt-get autoremove --purge -y | tee -a $REPORT

echo "" | tee -a $REPORT
echo "===== 📊 Espacio en bases de datos =====" | tee -a $REPORT
du -h --max-depth=1 /var/lib/mysql | sort -h | tee -a $REPORT

echo "" | tee -a $REPORT
echo "===== ✅ Mantenimiento completado =====" | tee -a $REPORT
echo "Informe guardado en $REPORT" | tee -a $REPORT

Cómo usarlo

COMANDOS EN NEGRITA

  1. Copia el contenido en un archivo: nano vps-maintenance.sh
  2. Dale permisos de ejecución: chmod +x vps-maintenance.sh
  3. Ejecútalo con privilegios: sudo ./vps-maintenance.sh

✅ Resultado esperado

  • Se ejecutan todas las limpiezas y comprobaciones.
  • Se genera un archivo de informe en /root/ con nombre tipo vps-report-2025-12-06.txt.
  • Cada mes tendrás un histórico con fecha, para comparar evolución del espacio y detectar crecimientos anómalos.

Configuración con cron

  1. Edita el cron del sistema:
sudo crontab -e
  1. Agrega esta línea al final:
0 3 1 * * /root/vps-maintenance.sh

Explicación:

  • 0 3 1 * * → se ejecuta a las 03:00 AM del día 1 de cada mes.
  • /root/vps-maintenance.sh → ruta completa al script que creaste.
  • El script ya genera un informe con fecha (/root/vps-report-YYYY-MM-DD.txt), así tendrás histórico mensual.

📂 Dónde ver los informes

Cada mes se guardará un archivo en /root/ con nombre tipo:

vps-report-2025-12-01.txt
vps-report-2026-01-01.txt

Puedes revisarlos con:

less /root/vps-report-2025-12-01.txt

✅ Resultado esperado

  • El mantenimiento se ejecuta automáticamente cada mes.
  • Los informes quedan archivados con fecha.
  • Tu VPS se mantiene limpio y controlado sin intervención manual.

Instrucciones para habilitar el envío por email

1. Instalar un agente de correo ligero

En Debian lo más sencillo es mailutils (usa postfix o exim como backend):

sudo apt-get update
sudo apt-get install mailutils -y

Durante la instalación te pedirá configurar postfix. En el caso de que solo quieres enviar correos (no recibir), selecciona «Internet Site» y pon tu dominio o hostname del VPS.

2. Modificar el script vps-maintenance.sh

Agrega al final del script, las siguientes líneas de código:

# Dirección de destino
EMAIL="tu-correo@ejemplo.com"

# Enviar el informe por email
mail -s "Informe VPS $(date +%F)" $EMAIL < $REPORT

3. Configuración con cron (ya lo tienes)

Tu cron quedaría así, ejecutando el script el día 1 de cada mes a las 03:00:

0 3 1 * * /root/vps-maintenance.sh

✅ Resultado esperado

  • Cada mes, el script se ejecuta automáticamente.
  • Se genera el informe en /root/vps-report-YYYY-MM-DD.txt.
  • Se envía un email con el informe adjunto al destinatario que configures.

Comandos para revisar espacio en el VPS

  • Espacio general en todas las particiones:
df -h

Muestra tamaño total, usado, disponible y porcentaje de uso en cada sistema de archivos.

  • Uso detallado en /var (donde suelen crecer logs, bases de datos y webs):
sudo du -h --max-depth=1 /var | sort -h

Lista los subdirectorios de /var ordenados por tamaño.

  • Uso detallado en /var/www (tus sitios web):
sudo du -h --max-depth=1 /var/www | sort -h

Te dice cuánto ocupa cada proyecto web.

  • Uso detallado en /var/log (logs del sistema y Apache):
sudo du -h --max-depth=1 /var/log | sort -h

Localiza qué servicio genera más registros.

  • Uso detallado en /var/lib (bases de datos, librerías, contenedores):
sudo du -h --max-depth=1 /var/lib | sort -h

Analiza si MySQL, apt o Docker están ocupando demasiado espacio.

✅ Recomendación

Si lo vas a anotar en tu informe, puedes dejarlo como bloque final:

# Comandos de comprobación de espacio en el VPS
df -h
sudo du -h --max-depth=1 /var | sort -h
sudo du -h --max-depth=1 /var/www | sort -h
sudo du -h --max-depth=1 /var/log | sort -h
sudo du -h --max-depth=1 /var/lib | sort -h
Instalar Servidor de Correo en VPS

Instalar Servidor de Correo en VPS

Como instalar un servidor de correo en VPS, sin romper los sitios de WordPress.

Sí, puedes instalar un servidor de correo en tu VPS sin afectar tus sitios WordPress si mantienes cada servicio bien aislado y configuras correctamente los puertos, dominios y recursos. Aquí tienes una guía paso a paso para hacerlo de forma segura.

Instalación de servidor de correo en VPS (Postfix + Dovecot)

1. Verifica tu entorno

  • Tu VPS debe tener Ubuntu/Debian actualizado.
  • Tus sitios WordPress deben estar funcionando en rutas como /var/www/tusitio.com.
  • Asegúrate de tener acceso root o sudo.

bash

sudo apt update && sudo apt upgrade -y

2. Instala Postfix (SMTP)

Postfix se encarga de enviar correos.

bash

sudo apt install postfix -y
  • Elige la opción «Internet Site» durante la instalación.
  • Introduce tu dominio principal (ej. tusitio.com) cuando lo pida.

3. Instala Dovecot (IMAP/POP3)

Dovecot permite recibir y consultar correos.

bash

sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y
  • Configura /etc/dovecot/dovecot.conf y /etc/dovecot/conf.d/10-mail.conf para usar Maildir:

bash

mail_location = maildir:~/Maildir

4. Crea usuarios de correo

Puedes usar usuarios del sistema o virtuales. Ejemplo básico:

bash

sudo adduser correo1

Esto crea una cuenta con buzón en /home/correo1/Maildir.

5. Configura DNS del dominio

En tu panel de dominio (ej. IONOS, Cloudflare):

  • MX record → mail.tusitio.com
  • A record → IP del VPS
  • SPF record → v=spf1 mx ~all
  • DKIM y DMARC → opcionales pero recomendados

6. Instala certificados SSL (Let’s Encrypt)

Protege el acceso IMAP/SMTP con TLS:

bash

sudo apt install certbot
sudo certbot certonly --standalone -d mail.tusitio.com

Configura Postfix y Dovecot para usar los certificados en /etc/letsencrypt/live/mail.tusitio.com/.

7. Verifica puertos abiertos

  • Postfix: 25, 587 (SMTP)
  • Dovecot: 143 (IMAP), 993 (IMAPS)
  • Usa ufw para permitirlos:

bash

sudo ufw allow 25,587,143,993/tcp

8. No romper WordPress

  • No toques configuraciones de Apache/Nginx que afecten /var/www.
  • No uses la misma base de datos ni usuarios que WordPress.
  • Mantén el servidor de correo en su propio subdominio (mail.tusitio.com) y rutas separadas.

En conclusión

  • Postfix + Dovecot son seguros y compatibles con WordPress si se instalan en rutas y puertos separados.
  • No afectan tus sitios WordPress si mantienes aislamiento de servicios.
  • Puedes añadir Roundcube como webmail más adelante si lo deseas.

¡Perfecto, Francisco! Aquí tienes un script automatizado para instalar un servidor de correo básico (Postfix + Dovecot) en tu VPS sin interferir con tus sitios WordPress. Este script está pensado para Ubuntu/Debian y configura todo en rutas separadas, sin tocar /var/www.

🛠️ Script de instalación de servidor de correo

bash

#!/bin/bash

# Actualizar sistema
sudo apt update && sudo apt upgrade -y

# Instalar Postfix (SMTP)
sudo debconf-set-selections <<< "postfix postfix/mailname string mail.tusitio.com"
sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
sudo apt install postfix -y

# Instalar Dovecot (IMAP/POP3)
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y

# Configurar Maildir
sudo sed -i 's|#mail_location =|mail_location = maildir:~/Maildir|' /etc/dovecot/conf.d/10-mail.conf

# Crear usuario de prueba
sudo adduser correo1
sudo mkdir -p /home/correo1/Maildir
sudo maildirmake.dovecot /home/correo1/Maildir
sudo chown -R correo1:correo1 /home/correo1/Maildir

# Abrir puertos necesarios
sudo ufw allow 25,587,143,993/tcp

# Reiniciar servicios
sudo systemctl restart postfix
sudo systemctl restart dovecot

echo "✅ Servidor de correo instalado. Puedes probar con Thunderbird o Roundcube."

¿Qué hace este script?

  • Instala Postfix para enviar correos y Dovecot para recibirlos.
  • Crea un usuario local (correo1) con buzón Maildir.
  • Configura puertos sin tocar Apache/Nginx ni tus sitios WordPress.
  • No modifica /var/www ni las bases de datos de WordPress.

script automatizado para instalar Roundcube en tu VPS y conectarlo al servidor de correo que ya configuramos con Postfix + Dovecot, sin tocar tus sitios WordPress.

🛠️ Script de instalación de Roundcube

bash

#!/bin/bash

# Variables
DOMINIO="correo.tusitio.com"
RUTA="/var/www/roundcube"

# Actualizar sistema
sudo apt update && sudo apt upgrade -y

# Instalar dependencias
sudo apt install apache2 php php-mysql php-intl php-mbstring php-xml composer unzip -y

# Descargar Roundcube
cd /var/www
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.5/roundcubemail-1.6.5-complete.tar.gz
tar -xvzf roundcubemail-1.6.5-complete.tar.gz
mv roundcubemail-1.6.5 roundcube

# Crear base de datos
mysql -u root -p <<EOF
CREATE DATABASE roundcube;
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcubeuser'@'localhost' IDENTIFIED BY 'tu_clave_segura';
FLUSH PRIVILEGES;
EOF

# Configurar Apache VirtualHost
cat <<EOL | sudo tee /etc/apache2/sites-available/roundcube.conf
<VirtualHost *:80>
  ServerName $DOMINIO
  DocumentRoot $RUTA

  <Directory $RUTA>
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog \${APACHE_LOG_DIR}/roundcube_error.log
  CustomLog \${APACHE_LOG_DIR}/roundcube_access.log combined
</VirtualHost>
EOL

# Activar sitio y reiniciar Apache
sudo a2ensite roundcube.conf
sudo systemctl reload apache2

# Configuración inicial de Roundcube
cd $RUTA
composer install --no-dev

echo "✅ Roundcube instalado en http://$DOMINIO"
echo "Accede al instalador en http://$DOMINIO/installer"
echo "Recuerda eliminar la carpeta 'installer' después de la configuración:"
echo "rm -rf $RUTA/installer"

Qué hace este script

  • Instala Roundcube en /var/www/roundcube.
  • Crea un VirtualHost en Apache para correo.tusitio.com.
  • Configura una base de datos independiente para Roundcube.
  • No toca tus sitios WordPress (que siguen en sus propios VirtualHosts).
  • Te deja listo el instalador web de Roundcube.

Próximo paso

  1. Accede a http://correo.tusitio.com/installer.
  2. Configura conexión IMAP/SMTP con tu servidor Postfix/Dovecot.
  3. Elimina la carpeta installer por seguridad.
Instalar Roundcube en un VPS con Debian 12

Instalar Roundcube en un VPS con Debian 12

Para instalar Roundcube en un VPS con Debian 12 sin afectar tus sitios WordPress, debes usar una configuración separada dentro de tu servidor web (Apache o Nginx), asegurarte de no sobrescribir archivos de configuración existentes y mantener cada sitio en su propio VirtualHost o bloque de servidor.

🛠️ Pasos para instalar Roundcube en Debian 12 sin romper WordPress

1. Requisitos previos

  • VPS con Debian 12 actualizado.
  • Servidor web funcionando (Apache o Nginx).
  • PHP (preferiblemente PHP 8.2), MySQL/MariaDB, y IMAP server (como Dovecot).
  • Sitios WordPress ya configurados en sus propios VirtualHosts.

2. Instalar Roundcube desde repositorio

bash

sudo apt update
sudo apt install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra

Esto instalará Roundcube y sus dependencias sin tocar tus sitios WordPress.

3. Configurar VirtualHost separado para Roundcube (Apache)

Crea un archivo como /etc/apache2/sites-available/roundcube.conf:

apache

<VirtualHost *:80>
    ServerName webmail.tudominio.com
    DocumentRoot /var/lib/roundcube

    <Directory /var/lib/roundcube>
        Options +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
    CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined
</VirtualHost>

Activa el sitio:

bash

sudo a2ensite roundcube.conf
sudo systemctl reload apache2

⚠️ No modifiques los VirtualHosts de tus sitios WordPress. Mantén cada dominio en su propio archivo de configuración.

4. Configurar base de datos

Roundcube necesita una base de datos MySQL/MariaDB:

bash

sudo mysql -u root -p
CREATE DATABASE roundcube CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcubeuser'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
FLUSH PRIVILEGES;
EXIT;

5. Finalizar instalación desde navegador

Accede a http://webmail.tudominio.com/installer y sigue el asistente. Una vez terminado, elimina el instalador:

bash

sudo rm -rf /var/lib/roundcube/installer

6. Seguridad y compatibilidad

  • Asegúrate de que PHP y Apache/Nginx estén configurados correctamente para coexistir con WordPress.
  • Usa HTTPS con Let’s Encrypt para proteger el acceso a Roundcube.
  • Configura fail2ban y firewall para proteger tu servidor.

✅ Consejos para no romper WordPress

  • Nunca edites archivos como /etc/apache2/sites-enabled/000-default.conf si WordPress ya está funcionando.
  • Usa VirtualHosts separados para cada dominio y subdominio.
  • Verifica que no haya conflictos de puertos o rutas (DocumentRoot).
  • Haz una copia de seguridad antes de instalar Roundcube.

Configurar el subdominio webmail.tudominio.com

🌐 Crear subdominio para Roundcube

  1. Añade el subdominio en tu DNS:
    • En tu panel de control DNS, crea un registro tipo A o CNAME para webmail.tudominio.com apuntando a tu VPS.
  2. Configura VirtualHost para Apache (si usas Apache): Crea /etc/apache2/sites-available/webmail.conf:apache<VirtualHost *:80> ServerName webmail.tudominio.com DocumentRoot /var/lib/roundcube <Directory /var/lib/roundcube> Options +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/webmail_error.log CustomLog ${APACHE_LOG_DIR}/webmail_access.log combined </VirtualHost> Luego activa el sitio:bashsudo a2ensite webmail.conf sudo systemctl reload apache2

🔐 Instalar certificado SSL con Let’s Encrypt

  1. Instala Certbot:bashsudo apt install certbot python3-certbot-apache
  2. Ejecuta Certbot para el subdominio:bashsudo certbot --apache -d webmail.tudominio.com
  3. Verifica que el acceso a https://webmail.tudominio.com funcione correctamente.

🧪 Verifica que WordPress no se vea afectado

  • Asegúrate de que cada dominio WordPress tenga su propio VirtualHost y no compartan rutas ni puertos con Roundcube.
  • No edites 000-default.conf si tus sitios WordPress ya están funcionando.
  • Usa apache2ctl -S para ver el mapa de VirtualHosts activos y confirmar que no hay conflictos.

Configuración completa para usar Nginx

1. Crear bloque de servidor para Roundcube

Edita o crea el archivo /etc/nginx/sites-available/webmail.tudominio.com:

nginx

server {
    listen 80;
    server_name webmail.tudominio.com;

    root /var/lib/roundcube;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
        deny all;
    }

    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

    error_log /var/log/nginx/roundcube_error.log;
    access_log /var/log/nginx/roundcube_access.log;
}

2. Activar el sitio

bash

sudo ln -s /etc/nginx/sites-available/webmail.tudominio.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

🔐 Instalar SSL con Let’s Encrypt

  1. Instala Certbot para Nginx:

bash

sudo apt install certbot python3-certbot-nginx
  1. Ejecuta Certbot:

bash

sudo certbot --nginx -d webmail.tudominio.com
  1. Verifica acceso a https://webmail.tudominio.com

✅ Verifica que WordPress no se vea afectado

  • Tus sitios WordPress deben tener sus propios bloques server en Nginx, como tudominio.com o blog.tudominio.com.
  • No uses default_server en el bloque de Roundcube.
  • Usa nginx -T para ver toda la configuración activa y confirmar que no hay conflictos.

Crear Carpeta y Archivos en un Dominio en VPS

En este curso, vas a aprender a crear directorios y archivos en un dominio que tengas instalado en tu VPS (Como conectar un VPS en Debian 10).

Si tu usuario tiene privilegios de sudo:

bash

sudo mkdir /var/www/tu-sitio/constitucion
sudo touch /var/www/tu-sitio/constitucion/constitucion.html
sudo touch /var/www/tu-sitio/constitucion/constitucion.txt

🔑 Opción 2: Cambiar permisos temporalmente

Dar permisos de escritura al usuario actual:

bash

sudo chown -R debian:debian /var/www/tu-sitio

Esto cambia el propietario del directorio al usuario debian. Después podrás crear la carpeta y archivos sin problemas:

bash

mkdir /var/www/tu-sitio/constitucion
touch /var/www/tus-sitio/constitucion/constitucion.html
touch /var/www/tu-sitio/constitucion/constitucion.txt

⚠️ Ten en cuenta que si el servidor web corre como www-data, puede ser mejor dejar los archivos con propietario www-data y permisos 644.

🔑 Opción 3: Crear con root y ajustar permisos

bash

sudo mkdir /var/www/tu-sitio/constitucion
sudo touch /var/www/tu-sitio/constitucion/constitucion.html
sudo touch /var/www/tu-sitio/constitucion/constitucion.txt
sudo chown www-data:www-data /var/www/tu-sitio/constitucion/*
sudo chmod 644 /var/www/tu-sitio/constitucion/*

👉 Lo más limpio es usar sudo para crear la carpeta y luego asignar propietario a www-data (usuario del servidor web).

🖥️ Opción 1: Editar con nano (editor sencillo en terminal)

  1. Abre el archivo HTML:bashsudo nano /var/www/tu-sitio/constitucion/constitucion.html
    • Haz tus cambios.
    • Guarda con CTRL+O y sal con CTRL+X.
  2. Abre el archivo TXT:bashsudo nano /var/www/tu-sitio/constitucion/constitucion.txt
    • Edita el contenido.
    • Guarda y sal igual que antes.

🖥️ Opción 2: Editar con vim (más avanzado)

bash

sudo vim /var/www/tu-sitio/constitucion/constitucion.html
sudo vim /var/www/tu-sitiom/constitucion/constitucion.txt
  • Entra en modo edición con i.
  • Escribe tus cambios.
  • Guarda y sal con ESC, luego :wq.

1️⃣ Verifica el document root de tu dominio

En Debian 10 con Apache, normalmente está en:

bash

cat /etc/apache2/sites-available/tu-sitio.conf

Busca la línea:

apache

DocumentRoot /var/www/tu-sitio

👉 Si aparece así, entonces /var/www/tu-sitio es tu raíz pública.

2️⃣ Crea la carpeta dentro del document root

Si aún no existe:

bash

sudo mkdir /var/www/ltu-sitio/constitucion
sudo touch /var/www/tu-sitio/constitucion/constitucion.html
sudo touch /var/www/tu-sitio/constitucion/constitucion.txt

3️⃣ Ajusta permisos

Para que Apache (usuario www-data) pueda servir los archivos:

bash

sudo chown -R www-data:www-data /var/www/tu-sitio/constitucion
sudo chmod -R 755 /var/www/tu-sitio/constitucion

1. Mover la carpeta constitucion dentro del DocumentRoot

La forma más directa:

bash

sudo mv /var/www/tu-sitio/constitucion /var/www/tu-sitio/wordpress/

Después tendrás:

Código

/var/www/tu-sitio/wordpress/constitucion/constitucion.html
/var/www/tu-sitio/wordpress/constitucion/constitucion.txt

Y podrás acceder en el navegador:

  • http://tu-sitio/constitucion/constitucion.html
  • http://tu-sitio/constitucion/constitucion.txt

Podrás probar finalmente la URL: http://tu-sitio/constitucion/constitucion.html. Puedes sustituir constitucion.html, por index.html, o el nombre que elijas.