Roundcube sur BO5.5 + PHP5.3

De wikiGite

Installation des dépendances

yum install --enablerepo=remi php-pear php-pear-Mail php-pear-Mail-Mime php-pear-MDB2 php-pear-MDB2-Driver-mysql php-pear-Net-IDNA2 php-mcrypt php-intl

Ajouter /usr/share/pear à open_basedir à la fin de /etc/php.ini

Chargement Roundcube

Vérifier la version de la GPL dependent (sans les librairies non-libres) sur http://roundcube.net/download (0.9.5 à la publication). Si les paquets ci-dessus ont été préalablement installés, on peut prendre la version "dependent" (sans paquets non GPL) :

export RCVERS=0.9.5
wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail-dependent/$RCVERS/roundcubemail-$RCVERS-dep.tar.gz
tar -xvzf roundcubemail-$RCVERS-dep.tar.gz
mv roundcubemail-$RCVERS-dep /usr/share/roundcubemail
chown -R apache.apache /usr/share/roundcubemail/temp
chown -R apache.apache /usr/share/roundcubemail/logs/

Configuration Apache - PHP

Si squirrelmail.conf existe, il peut être en conflit avec roundcube : penser à supprimer squirrelmail.conf dans ce cas.

Créer un fichier /etc/httpd/conf.d/roundcube.conf :

#
# Roundcube is a webmail package written in PHP.
#
Alias /webmail /usr/share/roundcubemail

<Directory /usr/share/roundcubemail/>
  php_admin_value safe_mode off
  php_admin_value open_basedir /home/:/tmp/:/usr/sausalito/configs/php/:/var/lib/php/session/:/usr/share/roundcubemail/:/usr/share/pear/
  Options FollowSymLinks
  AllowOverride All
</Directory>

Dans /etc/php.ini :

date.timezone = Europe/Paris

MDB2 n'étant pas 100% compatible avec PHP 5.3, enlever les erreur "Deprecated"

error_reporting  =  E_ALL & ~E_NOTICE & ~E_DEPRECATED

Et enfin :

/etc/init.d/httpd restart

Hostname

La fonction mail() de PHP (utilisée par Roundcube pour envoyer les mails) prend par défaut le nom du serveur dans /etc/hosts et l'ajoute au nom de l'utilisateur qui envoie un mail pour former le champ Return-Path (le "retour en cas d'erreur", pas l'adresse de réponse qui, elle, reprend bien le mail de l'expéditeur). On peut donc avoir des mails avec un Return-Path de type

user@www.domain.com

Or, de plus en plus de serveurs mails (à commencer par BlueOnyx !) testent ce Return-Path pour savoir si le domaine existe : avec le www devant, la réponse est négative et le mail refusé.

Solution simple :

Dans le fichier /etc/hosts du serveur, juste entre son adresse IP et "www.domain.com .......", insérer "domain.com". PHP et Sendmail prendront alors ça pour le nom du serveur et forgeront un adresse mail en user@domain.com valide.

Configuration Roundcube

(Rappel - DOC INSTALL : http://trac.roundcube.net/wiki/Howto_Install)

Créer dans mysql une base roundcubemail et un utilisateur roundcube

CREATE DATABASE roundcubemail;
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY '<MOT DE PASSE ROUNDCUBE>';

Lancer dans un navigateur

http://<URL VERS LE SERVEUR WEB>/webmail/installer

Et suivre les écrans, selon la doc indiquée plus haut. Sur l'écran 3, tout doit apparaitre OK.

Dans main.inc.php, $rcmail_config['default_host'] doit être égal à '%n' pour se connecter au serveur IMAP,
et $rcmail_config['mail_domain'] doit être égal à '%d' pour que les nouveaux utilisateurs soient créés avec une adresse par défaut de type user@domain.tld.

NOTE : Attention avec BlueOnyx, le login au webmail se fait avec le nom de l'utilisateur, pas l'adresse mail complète. Par conséquent, quelque soit le domaine virtuel donné en URL, si le login/mot de passe existent sur le serveur même dans un autre domaine, la connexion est accepté !
L'URL de la première connexion (qui crée l'identité par défaut dans Roundcube) est donc très importante !