Webmail Setup · 5 min read · Dec 25, 2025

Cambiando de SquirrelMail a RoundCube en tu servidor ISPConfig3

Cambiando de SquirrelMail a RoundCube en tu servidor ISPConfig3

Este tutorial ha sido creado para aquellos que han instalado El Servidor Perfecto - CentOS 5.4 x86_64 [ISPConfig 3] y no les gusta SquirrelMail como cliente de webmail. Aquí hay una guía para reemplazar SquirrelMail con RoundCube, que es más visualmente atractivo y más fácil de gestionar para nuestros clientes.

¡Importante! No lo he probado, pero… como la forma de instalar SquirrelMail no ha cambiado en los recientes Howtos de Servidor Perfecto CentOS 5.x. Creo que este tutorial también es válido para versiones anteriores de CentOS, e incluso otras distribuciones de Linux, no cambia prácticamente nada en el sistema.

Paso 1.

Descarga RoundCube, descomprime, elimina archivos innecesarios y prepara la carpeta de instalación. Reemplaza roundcubemail-0.3.1 por la última disponible.

cd /usr/share  
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.3.1/roundcubemail-0.3.1.tar.gz?use_mirror=ignum  
tar -vxf roundcubemail-0.3.1.tar.gz  
rm -fr roundcubemail-0.3.1.tar.gz  
cd roundcubemail-0.3.1  
rm -fr installer  
chmod 755 temp logs  
cd config  
cp db.inc.php.dist db.inc.php  
cp main.inc.php.dist main.inc.php

Paso 2.

Ahora vamos a crear nuestra base de datos para RoundCube. Yo creé la mía con ISPConfig porque quiero que se muestre en mi lista de bases de datos de ISPConfig. Este es mi ejemplo de base de datos:

Nombre de la base de datos: roundcubedb  
Usuario de la base de datos: roundcubeuser  
Contraseña de la base de datos: 12345

Cambia estos por más seguridad

Paso 3.

Es necesario instalar RoundCube manualmente, porque si usas el instalador de RoundCube, reportará un error de versión de php y no continuará con la instalación. Edita el archivo db.inc.php, buscamos la siguiente línea y la editamos con nuestros datos (la base de datos que hemos creado en ISPConfig).

vi db.inc.php

Cambia la línea:

[...]  
$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';  
[...]  

por:

[...]  
$rcmail_config['db_dsnw'] = 'mysql://roundcubeuser:12345@localhost/roundcubedb';  
[...]  

También cambia estas configuraciones en el archivo main.inc.php:

vi main.inc.php

Cambia las líneas:

[...]  
$rcmail_config['message_cache_lifetime'] = '10d';  
[...]  
$rcmail_config['default_host'] = '';  
[...]  
$rcmail_config['smtp_server'] = '';  
[...]  
$rcmail_config['session_lifetime'] = 10;  
[...]  
$rcmail_config['create_default_folders'] = FALSE;  
[...]  

por:

[...]  
$rcmail_config['message_cache_lifetime'] = '30m';  
[...]  
$rcmail_config['default_host'] = 'localhost';  
[...]  
$rcmail_config['smtp_server'] = '%h';  
[...]  
$rcmail_config['session_lifetime'] = 30;  
[...]  
$rcmail_config['create_default_folders'] = TRUE;  
[...]  

Paso 4.

Ahora tenemos que crear manualmente las tablas en nuestra base de datos de RoundCube. Busca el archivo mysql.initial.sql en la carpeta roundcubemail-0.3.1/SQL/ y copia su contenido:

-- Estructura inicial de la base de datos de RoundCube Webmail
/*!40014  SET FOREIGN_KEY_CHECKS=0 */;
-- Estructura de la tabla para la tabla `session`
CREATE TABLE `session` (
 `sess_id` varchar(40) NOT NULL,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `ip` varchar(40) NOT NULL,
 `vars` mediumtext NOT NULL,
 PRIMARY KEY(`sess_id`),
 INDEX `changed_index` (`changed`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Estructura de la tabla para la tabla `users`
CREATE TABLE `users` (
 `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `username` varchar(128) NOT NULL,
 `mail_host` varchar(128) NOT NULL,
 `alias` varchar(128) NOT NULL,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `last_login` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `language` varchar(5),
 `preferences` text,
 PRIMARY KEY(`user_id`),
 INDEX `username_index` (`username`),
 INDEX `alias_index` (`alias`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Estructura de la tabla para la tabla `messages`
CREATE TABLE `messages` (
 `message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 `del` tinyint(1) NOT NULL DEFAULT '0',
 `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
 `uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
 `subject` varchar(255) NOT NULL,
 `from` varchar(255) NOT NULL,
 `to` varchar(255) NOT NULL,
 `cc` varchar(255) NOT NULL,
 `date` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `size` int(11) UNSIGNED NOT NULL DEFAULT '0',
 `headers` text NOT NULL,
 `structure` text,
 PRIMARY KEY(`message_id`),
 INDEX `created_index` (`created`),
 INDEX `index_index` (`user_id`, `cache_key`, `idx`),
 UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
 CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Estructura de la tabla para la tabla `cache`
CREATE TABLE `cache` (
 `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL ,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `data` longtext NOT NULL,
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY(`cache_id`),
 INDEX `created_index` (`created`),
 INDEX `user_cache_index` (`user_id`,`cache_key`),
 CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Estructura de la tabla para la tabla `contacts`
CREATE TABLE `contacts` (
 `contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `del` tinyint(1) NOT NULL DEFAULT '0',
 `name` varchar(128) NOT NULL,
 `email` varchar(128) NOT NULL,
 `firstname` varchar(128) NOT NULL,
 `surname` varchar(128) NOT NULL,
 `vcard` text NULL,
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY(`contact_id`),
 INDEX `user_contacts_index` (`user_id`,`email`),
 CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Estructura de la tabla para la tabla `identities`
CREATE TABLE `identities` (
 `identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `del` tinyint(1) NOT NULL DEFAULT '0',
 `standard` tinyint(1) NOT NULL DEFAULT '0',
 `name` varchar(128) NOT NULL,
 `organization` varchar(128) NOT NULL DEFAULT '',
 `email` varchar(128) NOT NULL,
 `reply-to` varchar(128) NOT NULL DEFAULT '',
 `bcc` varchar(128) NOT NULL DEFAULT '',
 `signature` text,
 `html_signature` tinyint(1) NOT NULL DEFAULT '0',
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY(`identity_id`),
 CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;

Ahora ve a http://www.tudominio.tld:8080/phpmyadmin, ingresa tu nombre de usuario y contraseña de MySQL. Selecciona nuestra base de datos RoundCube “roundcubedb” y ve a la pestaña SQL, en el cuadro de texto, pega el texto que has copiado de mysql.initial.sql y ejecuta la consulta. Hemos instalado RoundCube Webmail con éxito.

Paso 5.

Queremos RoundCube como nuestro Webmail predeterminado. SquirrelMail no se usará, ni queremos que nuestros clientes sufran ninguna alteración. Procedemos así: Este paso cada uno puede adaptarlo a sus necesidades. SquirrelMail se puede mantener, creando un nuevo alias para RoundCube.

cd /usr/share  
mv squirrelmail squirrelmail.bak  
mv roundcubemail-0.3.1 squirrelmail

Paso 6.

Finalmente ve a http://www.tudominio.tld:8080/webmail e inicia sesión para disfrutar de este lindo Webmail.

Información:

  • Más información sobre RoundCube: http://www.roundcube.net
  • Howto de Falko El Servidor Perfecto - CentOS 5.4 x86_64 [ISPConfig 3]

Agradecimientos especiales a:

  • Falko. Tus Howtos de Servidor Perfecto me ayudaron mucho en mi iniciación con servidores Linux.
  • Mi novia Naty. Ella hizo la traducción del texto.
  • El equipo de HowtoForge por su excelente trabajo.
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.