Skip to main content Help Control Panel

Tutoriaux dédiés à l'application VHCS 2 «  

Tutorial VHCS (PHP4) - Installation du Webmail RoundCube

Posted by M. declercq on June 2 2007, page edited by M. declercq on May 29, (popular)  
Tags: vhcs roundcube webmail php4

Ce tutorial s'adresse aux administrateurs qui désirent remplacer le Webmail Uebimiau fourni par défaut avec l'application VHCS par le Webmail RoundCube.

Avant Propos

Roundcube est un Webmail dernière génération. Il est écrit en PHP est exploite au maximum l'objet XmlHttpRequest ( Technologie dite Ajax ). Ultra simple d'utilisation, il convient parfaitement aux petites et moyennes structures d'hébergements sur serveur mutualisé.

Attention : La procédure décrite dans ce tutorial suppose que vous employez PHP4. pour faire tourner VHCS ainsi que les applications tierces situées dans le répertoire /var/www/vhcs/gui/tools. De même, vous devez employer Mysql 4.1.x ou 5.x.

Si vous faites parti de ceux qui on remplaçé PHP4 par PHP5, nous vous invitons à suivre ce tutorial :

http://nuxwin.com/article-149-tutorial-vhcs-php5-installation-du-webmail-roundcube

RoundCube comparé à Uebimiau :

Uebimiau est un Webmail très léger qui s'est longtemps imposé aux petites structures proposant de l'hébergement mutualisé. Ce webmail développé en PHP demande en effet peu de ressources système et n'implique pas la présence d'une base de données. Il ne requière pas non plus l'utilisation des cookies.

Il supporte les deux protocoles que sont IMAP et POP3, est multi-langages est skinable à volonté. On notera que par défaut, plusieurs thèmes sont proposés.

Malheureusement, ce Webmail semble être abandonné. On notera en effet, que le développement s'est arrêté depuis un petit moment déjà.

RoundCube fait parti des petits nouveaux. Il s'agit d'un nouveau Webmail employant les dernières technologies, notamment AJAX, ce qui lui permet d'être sur le devant de la scène.

Ce Webmail, tout comme son homologue SquirrMail, repose sur le couple PHP/MYSQL. Contrairement à Uebimiau il ne permet toutefois pas d'utiliser le protocole POP3, seul le protocole IMAP étant disponible. Enfin, on regrettera l'absence d'une fonction de filtrage permettant de rediriger les spams dans un dossier spécifique.

Les fonctionnalités :
  • Carnet d'adresse ;
  • Support MIME ;
  • Multi-langage ;
  • Support du glisser-déposé (rendu possible grâce à la technologie AJAX ) ;
  • Possibilité d'activer un système de cache rendant la lecture du courrier plus rapide* ;
  • Blocage automatique des images distantes ;
  • Création de dossier, sélection des dossier affichée ;
  • Correcteur orthographique très puissant ;
  • Envoi de pièce jointe ;
  • Demande accusé de réception ;
  • Gestion des Priorités d'envoi ;
  • Création de brouillons...
* L'activation du cache est surtout nécessaire si le Webmail n'est pas installé sur la machine qui héberge le serveur de messagerie.

I. Installation et configuration de RoundCube

A. Installation :

a. Près-requis :

Pour disposer de toutes les options, certaines librairies PEAR et autres packages doivent êtres installés sur le système :

1. On s'assure que les près requis sont installés:
$ aptitude update
$ aptitude remove --purge php5-dev
$ aptitude install openssl aspell php-pear php4-gd php4-mcrypt php4-dev libmagic-dev
$ pear update-channels && pear upgrade-all
$ pear install Net_SMTP
$ pear install Mail_mime
$ pear install MDB2
$ pear install MDB2#mysql
$ pecl install Fileinfo
Note : En ce qui concerne Fileinfo, il faut s'assurer que le fichier /etc/php4/apache2/conf.d/fileinfo.ini existe. Si ce n'est pas le cas, créez le et insérez la ligne 'extension=fileinfo.so' sans les quotes pour que la librairie puisse être chargée.

En ce qui concerne les librairies MDB2, Mail_mime et Net_SMTP, vous noterez qu'elle sont fournies dans l'archive de RoundCube. Ici, nous les installons pour êtres sûr d'avoir les dernières versions en date.

2. On vérifie la liste des librairie PEAR installées en éxécutant la commande suivante :
$ pear list
Nous obtenons le résultat suivant :
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.2 stable
Console_Getopt 1.2.3 stable
Fileinfo 1.0.4 stable
MDB2 2.4.1 stable
MDB2_Driver_mysql 1.4.1 stable
Mail_Mime 1.5.2 stable
Mail_mimeDecode 1.5.0 stable
Net_SMTP 1.2.11 stable
Net_Socket 1.0.8 stable
PEAR 1.7.1 stable
Structures_Graph 1.0.2 stable
Note : Sur votre système, le retour de cette commande peux être différent si vous aviez déjà installé d'autres librairies PEAR. Ce qui compte, c'est que les librairies, MDB2 ( avec driver Mysql ), FileInfo, Mail_Mime, Mail_mimeDecode, Net_SMTP et Net_Socket soient listées.

3. On recharge la configuration du Serveur Web apache2 pour que les changements soient pris en comptes :
$ /etc/init.d/apache2 reload
b. RoundCube :

Il n'existe pas encore de paquet Debian permettant une installation rapide du Webmail RoundCube. Pour pouvoir l'installer, nous devons récupérer l'archive source et la décompresser :

1. On se place dans le répertoire de destination ( ici, il s'agit du répertoire dans lequel sont situées les applications tierces de vhcs2 : Uebimiau, phpmyadmin et filemanager ) :
$ cd /var/www/vhcs2/gui/tools
2. On télécharge la dernière version en date de RoundCube :
$ wget http://download.nuxwin.com/roundcube/roundcubemail-0.1.1.tar.gz
3. On décompresse l'archive obtenue :
$ tar -xzf roundcubemail-0.1.1.tar.gz
4. On renome le répertoire contenant l'ancien Webmail (Uebimiau) :
$ mv ./webmail ./webmail-old
5. On renomme le répertoire roundcubemail-0.1.1 obtenu en webmail :
$ mv ./roundcubemail-0.1.1 ./webmail
6. On fixe le propriétaire/groupe et permissions des fichiers :
$ sh /var/www/vhcs2/engine/setup/set-gui-permissions.sh
$ chmod 0755 webmail/temp
$ chmod 0755 webmail/logs
Note : Lors de l'exécution du script ./set-gui-permissions.sh vous allez sûrement rencontrer ces erreurs :
chmod: ne peut accéder `/var/www/vhcs2/gui/tools/webmail/database': Aucun fichier ou répertoire de ce type
chown: ne peut accéder `/var/www/vhcs2/gui/tools/webmail/database': Aucun fichier ou répertoire de ce type
Vous noterez que ceci est tout à fait normal dans la messure ou le répertoire /database n'existe pas, il s'agit de deux commandes destinées à Uebimiau.

7. On désactive les librairies PEAR fournies avec Roundcube :
$ cd ./webmail/program/lib
$ mv ./PEAR.php ./PEAR.php-stop
$ mv ./DB.php ./DB.php-stop
$ mv ./DB ./DB-stop
$ mv ./MDB2.php ./MDB2.php-stop
$ mv ./MDB2 ./MDB2-stop
$ mv ./Mail ./Mail-stop
$ mv ./Net ./Net-stop
c. Création de la base de données et utilisateur Sql :

RoundCube emploi une base de données pour conserver les informations relatives aux utilisateurs, notamment, leurs préférences.

RoundCube peut employer divers SGBD notamment MySQL, SQLite, PostgreSQL. Dans le cadre de ce tutorial, nous employons Mysql dans la mesure ou il est déjà installé et que l'alternative SQLite ne fonctionne qu'avec le module SQLite de PHP5 :

1. On se connecte au moniteur Sql :
$ mysql -u root -p
Your root sql password
2. On créer un nouvelle base de données nommée roundcubemail :
CREATE DATABASE IF NOT EXISTS `roundcubemail` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3. On créer l'utilisateur Sql nommé roundcube et on lui donne tous les privilèges sur la base de données :
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'Your_Password';
Note : Vous devez remplacer Your_Password par le mot de passe de votre choix.

4. On recharge les privilèges Sql :
FLUSH PRIVILEGES;
5. On quitte le moniteur Sql :
quit;
6. On créer les tables Sql :
mysql -u root -p roundcubemail < roundcube/SQL/mysql5.initial.sql
Your root sql password

B. Configuration :

Depuis la version 0.1-STABLE, RoundCube dispose d'un installateur intéractive ( interface Web ) permettant de créer les fichiers de configuration nécessaire. Ce faisant, afin de vous faciliter la tâche, nous employons une méthode manuelle vous permettant d'une pierre deux coups de disposer des fichiers de configuration correctement paramétrés.

1. On se place dans le répertoire de configuration de RoundCube :
$ cd ../../config
2. On récupère les deux fichiers de configuration prêts à l'emploi :
$ wget http://download.nuxwin.com/roundcube/php4/db.inc.txt
$ wget http://download.nuxwin.com/roundcube/php4/main.inc.php
3. On change le mot de passe :
$ sed -e 's/MARK/Your_Password/g' db.inc.txt > db.inc.php
Note : Vous devez remplacer Your_Password par le mot de passe de l'utilisateur Sql roundcube créé précédemment.

4. On fixe le propriétaire/groupe de ces deux fichiers :
$ chown www-data.www-data db.inc.php main.inc.php
$ chmod 400 db.inc.php main.inc.php
L'installation et configuration de Roundcube étant terminée, vous devriez pouvoir y accéder par l'url habituelle.

Correction de bug

Un bug a recemment été découvert dans la version stable actuelle de Roundcube cf. http://trac.roundcube.net/ticket/1485055 .

Ce bug peut se traduire par l'impossibilité de vous connecter au webmail.

Voici le genre de log ( cf./logs/errors ) qui traduit cette situation :
[30-May-2008 00:31:00 +0200DB Error_doQuery: [Error messageCould not
    execute statement
]
[
Last executed queryPREPARE
    MDB2_STATEMENT_mysql_9150d12b9a77794f4b1c2da25277b3e3 FROM 
'INSERT INTO
    messagesn         (user_id, del, cache_key, created, idx, uid, subject,
    `from`, `to`, cc, date, size, headers, structure)n         VALUES (?, 0, ?,
    now(), ?, ?, ?, ?, ?, ?, FROM_UNIXTIME(), ?, ?, ?)'
]
[
Native code1064]
[
Native messageYou have an error in your SQL syntaxcheck the manual
    that corresponds to your MySQL server version 
for the right syntax to use
    
near '), ?, ?, ?)' at line 3]
 
in /var/www/shared-applications/roundcube/program/include/rcube_mdb2.inc
    on line 265



Pour corriger ce bug, vous devez éditer le fichier ./program/include/rcube_mdb2.php et remplacer le code suivant :
return "FROM_UNIXTIME($timestamp)";
par celui-ci
return sprintf("FROM_UNIXTIME(%d)", $timestamp);


Note : ce bug a été corrigé pour les versions svn >= r1390


Une erreur, une incompréhension concernant ce tutorial ? N'hésitez pas à utiliser la fonction commentaire de notre portail et/ou à nous joindre directement en utilisant notre formulaire contact : Nous contacter




Rédigé par M. Laurent DECLERCQ
v1.2 build 20080501.1258

Yacs skin by Laurent DECLERCQ - 2006-2008 - All right reserved