Installing a Roundcube webmail in less than 30 minutes
By Jean-Christophe Dubacq on Wednesday 26 March 2008, 08:57 - Geeky things - Permalink
Depuis la réinstallation de ma machine (depuis zéro), je n'avais pas remis en place de webmail. Avant, j'utilisais horde, bien connu des premiers utilisateurs de Free par exemple. C'est sûrement très puissant, mais j'utilise le webmail de façon extrêmement ponctuelle, quand je suis en déplacement dans un endroit qui ne laisse pas passer les connexions ssh. Il est aussi assez complexe à installer.
Mercredi, il y a deux semaines, je me suis retrouvé dans un tel endroit. Si j'ai un webmail fourni par mon travail, là, je voulais consulter une boîte à lettres spécifique de mon serveur ; ça n'allait plus du tout. J'ai rongé mon frein toute la journée, puis je suis revenu sur le problème ce matin. J'ai réussi à tout faire en moins de 30 minutes, tout compris, et sans avoir d'idée au préalable de ce qu'il fallait faire (je n'avais jamais lu la documentation du logiciel, à peine regardé les captures d'écran sur le site en question). Félicitations à Roundcube !
Au menu :
- La veille, préparer un petit nom de domaine spécifique pour ranger son webmail (par exemple,
webmail.mondomaine.fr) en tapotant dans son navigateur préféré pour causer avec son gestionnaire de noms (on peut faire avec n'importe quoi d'autre, mais j'aime bien un nom pour un service). Laisser diffuser (toute la nuit). - Créer un hôte virtuel. Recommencer parce qu'on se rend compte qu'on avait oublié de repasser super-utilisateur (jeter les morceaux non-utiles de la première tentative). J'ai un script qui me fait ça bien, en entrant le truc dans awstats, et me prépare tout ce qu'il faut.
- Éditer l'hôte virtuel pour qu'il agisse en SSL (
https), parce que des mots de passe vont quand même être diffusés sur ce canal. Activer PHP5 pour cet hôte (j'ai une préférence pour l'activation avec FastCGI, me servant ponctuellement seulement de PHP ; moins d'encombrement mémoire quand je ne m'en sers pas, et possibilité d'utiliser les démons efficaces d'Apache). - Générer un certificat qui accepte le nouveau nom
webmail.mondomaine.fren plus des autres. - Redémarrer Apache. Vérifier qu'on obtient bien un fichier rangé dans la racine du nouveau domaine.
sudo aptitude install roundcubeet suivre les instructions. Il faut juste connaître le mot de passe de sa base de données (je le connaissais).- Patauger cinq minutes pour être sûr de ce qu'il faut mettre. Se mettre dans la racine du nouveau domaine, et faire un
for i in /var/lib/roundcube/*; do ln -s $i; done. Recopier un fichier de lancement de php5 depuis un autre répertoire. - Pointer son navigateur sur
https://webmail.mondomaine.fr/. Tester une première connexion. Tout marche. Constater que la connexion au serveur n'est pas en https, et qu'on ne peut pas du coup se connecter directement aux autres serveurs (celui de mon laboratoire, par exemple). - Modifier une ligne de
config/main.inc.phppour faire apparaître à la place$rcmail_config['default_host'] = array('ssl://monimap.mondomaine.fr','ssl://mail.monboulot.fr','ssl://monautreserveur.fr');. Laisser refroidir, c'est prêt.
Voici le fichier final dans /etc/apache2/sites-available/webmail.mondomaine.fr et juste derrière celui pour lancer FCGI :
<virtualHost *:443="">
DocumentRoot /var/www/webmail.mondomaine.fr/
ServerName webmail.mondomaine.fr
ErrorLog /var/log/apache2/webmail.mondomaine.fr/error.log
CustomLog /var/log/apache2/webmail.mondomaine.fr/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/oberon.mondomaine.fr.crt
SSLCertificateKeyFile /etc/apache2/ssl/oberon.mondomaine.fr.key
ServerAdmin monadresse@chezmoi.fr
AddDefaultCharset utf-8
DirectoryIndex index.html index.php
# Uncomment to use PHP5
AddHandler fastcgi-script .fcgi
AddHandler php-fastcgi .php
AddHandler php5-fastcgi .php5
Action php-fastcgi /php5-wrapper.fcgi
Action php5-fastcgi /php5-wrapper.fcgi
</VirtualHost>
#!/bin/dash
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi
[Ajout] : J'ai dû aussi modifier une autre ligne, pour mettre $rcmail_config['create_default_folders'] = TRUE;. Sinon, je ne pouvais pas effacer les messages.