Serveur Web · 5 min read · Dec 25, 2025

Changer de SquirrelMail à RoundCube sur votre serveur ISPConfig3

Changer de SquirrelMail à RoundCube sur votre serveur ISPConfig3

Ce tutoriel a été créé pour ceux qui ont installé Le Serveur Parfait - CentOS 5.4 x86_64 [ISPConfig 3] et n’aiment pas SquirrelMail en tant que client webmail. Voici un guide pour remplacer SquirrelMail par RoundCube, qui est plus attrayant visuellement et plus facile à gérer pour nos clients.

Important ! Je n’ai pas essayé, mais… comme la façon d’installer SquirrelMail n’a pas changé dans les derniers Howtos du Serveur Parfait CentOS 5.x. Je pense que ce tutoriel est également valable pour les versions antérieures de CentOS, et même d’autres distributions Linux, cela ne change pratiquement rien dans le système.

Étape 1.

Téléchargez RoundCube, décompressez, supprimez les fichiers inutiles et préparez le dossier d’installation. Remplacez roundcubemail-0.3.1 par la dernière version 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

Étape 2.

Maintenant, créons notre base de données pour RoundCube. J’ai créé la mienne avec ISPConfig car je veux qu’elle soit affichée dans ma liste de bases de données ISPConfig. Voici un exemple de ma base de données :

Nom de la base de données : roundcubedb  
Utilisateur de la base de données : roundcubeuser  
Mot de passe de la base de données : 12345

Changez cela pour plus de sécurité

Étape 3.

Il est nécessaire d’installer RoundCube manuellement, car si vous utilisez l’installateur RoundCube, il signalera une erreur de version php et ne continuera pas avec l’installation. Éditez le fichier db.inc.php, recherchez la ligne suivante et modifiez-la avec nos données (la base de données que nous avons créée dans ISPConfig).

vi db.inc.php

Changez la ligne :

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

en :

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

Changez également ces paramètres dans le fichier main.inc.php :

vi main.inc.php

Changez les lignes :

[...]  
$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;  
[...]  

en :

[...]  
$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;  
[...]  

Étape 4.

Maintenant, nous devons créer manuellement les tables dans notre base de données RoundCube. Recherchez le fichier mysql.initial.sql dans le dossier roundcubemail-0.3.1/SQL/ et copiez son contenu :

-- Structure de la base de données initiale de RoundCube Webmail
/*!40014  SET FOREIGN_KEY_CHECKS=0 */;
-- Structure de la table `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 */;
-- Structure de la table `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 */;
-- Structure de la table `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 */;
-- Structure de la table `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 */;
-- Structure de la table `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 */;
-- Structure de la table `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 */;

Maintenant allez sur http://www.votredomaine.tld:8080/phpmyadmin, entrez votre nom d’utilisateur et mot de passe MySQL. Sélectionnez notre base de données RoundCube “roundcubedb” et allez dans l’onglet SQL, dans la zone de texte, collez le texte que vous avez copié de mysql.initial.sql et exécutez la requête. Nous avons installé RoundCube Webmail avec succès.

Étape 5.

Nous voulons RoundCube comme notre Webmail par défaut. SquirrelMail ne sera pas utilisé, ni nous ne voulons que nos clients subissent une altération. Nous procédons comme suit : Cette étape chacun peut l’adapter à ses besoins. SquirrelMail peut être conservé, en créant un nouvel alias pour RoundCube.

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

Étape 6.

Enfin, allez sur http://www.votredomaine.tld:8080/webmail et connectez-vous pour profiter de ce joli Webmail.

Informations :

  • Plus d’informations sur RoundCube : http://www.roundcube.net
  • Howto de Falko Le Serveur Parfait - CentOS 5.4 x86_64 [ISPConfig 3]

Remerciements spéciaux à :

  • Falko. Vos Howtos du Serveur Parfait m’ont beaucoup aidé dans mon initiation avec les serveurs Linux.
  • Ma petite amie Naty. Elle a fait la traduction du texte.
  • L’équipe de HowtoForge pour votre excellent travail.
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.