Outils personnels

Roundcube sur BO5.5 + PHP5.3 : Différence entre versions

De wikiGite

(Configuration Apache - PHP)
 
(21 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
  yum install --enablerepo=remi php-pear  
+
=== 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
 
Ajouter /usr/share/pear à open_basedir à la fin de /etc/php.ini
yum install --enablerepo=remi php-pear-Mail php-pear-Mail-Mime php-pear-MDB2 php-pear-MDB2-Driver-mysql php-mcrypt
 
  
Vérifier la version de la GPL dependent (sans les librairies non-libres) sur http://roundcube.net/download
+
=== Chargement Roundcube ===
  wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail-dependent/0.4.2/roundcubemail-0.4.2-dep.tar.gz
+
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) :
  tar -xvzf roundcubemail-0.4.2-dep.tar.gz
+
export RCVERS=0.9.5
  mv roundcubemail-0.4.2-dep /usr/share/roundcubemail
+
  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/temp
 
  chown -R apache.apache /usr/share/roundcubemail/logs/
 
  chown -R apache.apache /usr/share/roundcubemail/logs/
  
Copier la configuration de Squirrelmail pour faire une configuration Roundcube
+
=== Configuration Apache - PHP ===
cd /etc/httpd/conf.d
+
Si squirrelmail.conf existe, il peut être en conflit avec roundcube : penser à supprimer squirrelmail.conf dans ce cas.
cp squirrelmail.conf roundcube.conf
+
 
mv squirrelmail.conf /root
+
<!-- Archive : modification de squirrelmail.conf existant :
 +
mv squirrelmail.conf roundcube.conf
 
Supprimer le second bloc <Directory ...> inutile pour Roundcube<br>
 
Supprimer le second bloc <Directory ...> inutile pour Roundcube<br>
 
Remplacer squirrelmail par roundcubemail dans le fichier<br>
 
Remplacer squirrelmail par roundcubemail dans le fichier<br>
 
dans l'open_basedir, enlever tout ce qu'il y a après /usr/share/roundcubemail/, et rajouter à la place :/usr/share/pear/, ce qui donne :
 
dans l'open_basedir, enlever tout ce qu'il y a après /usr/share/roundcubemail/, et rajouter à la place :/usr/share/pear/, ce qui donne :
 
  php_admin_value open_basedir /home/:/tmp/:/var/lib/php/session/:/usr/share/roundcubemail/:/usr/share/pear/
 
  php_admin_value open_basedir /home/:/tmp/:/var/lib/php/session/:/usr/share/roundcubemail/:/usr/share/pear/
 +
-->
 +
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 :  
 
Dans /etc/php.ini :  
 
  date.timezone = Europe/Paris
 
  date.timezone = Europe/Paris
Ligne 26 : Ligne 43 :
 
  /etc/init.d/httpd restart
 
  /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)
 
(Rappel - DOC INSTALL : http://trac.roundcube.net/wiki/Howto_Install)
  
Ligne 32 : Ligne 59 :
 
  GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY <nowiki>'</nowiki>''<MOT DE PASSE ROUNDCUBE>''<nowiki>'</nowiki>;
 
  GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY <nowiki>'</nowiki>''<MOT DE PASSE ROUNDCUBE>''<nowiki>'</nowiki>;
  
Lancer
+
Lancer dans un navigateur
  http://www.systea.fr/webmail/installer
+
  http://''<URL VERS LE SERVEUR WEB>''/webmail/installer
Et suivre les écrans, seloon la doc indiquée plus haut. Tout doit être <span style="color:green">'''OK'''</span>.
+
Et suivre les écrans, selon la doc indiquée plus haut. Sur l'écran 3, tout doit apparaitre <span style="color:green">'''OK'''</span>.
 +
 
 +
Dans main.inc.php, $rcmail_config['default_host'] doit être égal à '%n' pour se connecter au serveur IMAP,<br>
 +
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.
  
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 nouveaus 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é !<br>
 +
L'URL de la première connexion (qui crée l'identité par défaut dans Roundcube) est donc très importante !

Version actuelle datée du 15 janvier 2014 à 14:38

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 !