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.