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.phpPaso 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: 12345Cambia 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.phpCambia 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.phpCambia 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 squirrelmailPaso 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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.