Différences entre versions de « Roundcube »
imported>XavierBéguin (Création de la page) |
imported>XavierBéguin (Précisions sur les prérequis) |
||
Ligne 22 : | Ligne 22 : | ||
* intl : fourni sous Squeeze par le paquet ''php5-intl'' (il est optionel et utile uniquement pour les fonctions d'internationalisation) | * intl : fourni sous Squeeze par le paquet ''php5-intl'' (il est optionel et utile uniquement pour les fonctions d'internationalisation) | ||
* mcrypt : fourni par le paquet php5-mcrypt. (module optionnel) | * mcrypt : fourni par le paquet php5-mcrypt. (module optionnel) | ||
− | * modules PEAR nécesaires: | + | * modules PEAR nécesaires (une version est fournie avec Roundcube s'ils ne sont pas installé sur le système; vous n'êtes donc pas obligés des les installer): |
** MDB : paquet php-mdb2. Vous aurez aussi besoni des paquets dépendant de votre système de base de données :php-mdb2-driver-pgsql ou php-mdb2-driver-mysql. | ** MDB : paquet php-mdb2. Vous aurez aussi besoni des paquets dépendant de votre système de base de données :php-mdb2-driver-pgsql ou php-mdb2-driver-mysql. | ||
** Mail_Mime : paquet php-mail-mime | ** Mail_Mime : paquet php-mail-mime | ||
Ligne 32 : | Ligne 32 : | ||
a2enmod headers | a2enmod headers | ||
/etc/init.d/apache2 reload | /etc/init.d/apache2 reload | ||
+ | |||
+ | D'autres prérequis sont précisés dans le fichier ''INSTALL'' fourni par Roundcube, notamment la configuration PHP suivante: | ||
+ | * error_reporting E_ALL & ~E_NOTICE (ou moins) | ||
+ | * memory_limit > 16MB (augmenter si nécessaire pour le support de grosses pièces jointes) | ||
+ | * file_uploads enabled (pour l'upload des pièces jointes) | ||
+ | * session.auto_start disabled | ||
+ | * zend.ze1_compatibility_mode disabled | ||
+ | * suhosin.session.encrypt disabled | ||
+ | * mbstring.func_overload disabled | ||
=== Configuration PHP === | === Configuration PHP === |
Version actuelle datée du 16 août 2011 à 11:34
Cette page rassemble quelques informations sur l'installation de Roundcube, un webmail simple à l'interface moderne et soignée. Certains détails donnés sont spécifiques à une installation sous Debian GNU/Linux, mais la plupart des informations sont valables sur tout système GNU/Linux.
Téléchargement
Roundcube est disponible sur le site http://www.roundcube.net/.
Comme toute application web, il est très important de la maintenir bien à jour et d'installer les nouvelles version qui corrigent des failles de sécurité. Vous serez averti de l'arrivé d'une nouvelle version en suivant le flux RSS http://sourceforge.net/export/rss2_projnews.php?group_id=139281
Installation
Commencez par désarchiver l'application (je modifie aussi le propriétaire des droits qui sont différents dans le tar):
tar xvzf roundcubemail-0.X.Y.tar.gz chown -R root: roundcubemail-0.X.Y
Pour les instructions d'installation, reférez-vous au fichier INSTALL fourni dans le répertoire Roundcube. Vous trouverez aussi un bon guide d'installation (en anglais) à cette adresse http://trac.roundcube.net/wiki/Howto_Install
Prérequis
Roundcube a besoin des modules PHP suivants:
- fileinfo : sous Squeeze, ce module est intégré à PHP (donc pas besoin de paquet supplémentaire). Sous Lenny, aucun paquet ne le fournit, mais on pourra en créer un à l'aide du paquet dh-make-php.
- intl : fourni sous Squeeze par le paquet php5-intl (il est optionel et utile uniquement pour les fonctions d'internationalisation)
- mcrypt : fourni par le paquet php5-mcrypt. (module optionnel)
- modules PEAR nécesaires (une version est fournie avec Roundcube s'ils ne sont pas installé sur le système; vous n'êtes donc pas obligés des les installer):
- MDB : paquet php-mdb2. Vous aurez aussi besoni des paquets dépendant de votre système de base de données :php-mdb2-driver-pgsql ou php-mdb2-driver-mysql.
- Mail_Mime : paquet php-mail-mime
- Net_Smtp : paquet php-net-smtp
Les modules apache suivant doivent être activés si vous souhaitez profiter de la compression et de la mise en cache de certaines pages: mod_deflate, mod_expires, et mod_headers. Sous debian, vous pouvez les activer en exécutant les commandes suivantes:
a2enmod deflate a2enmod expires a2enmod headers /etc/init.d/apache2 reload
D'autres prérequis sont précisés dans le fichier INSTALL fourni par Roundcube, notamment la configuration PHP suivante:
- error_reporting E_ALL & ~E_NOTICE (ou moins)
- memory_limit > 16MB (augmenter si nécessaire pour le support de grosses pièces jointes)
- file_uploads enabled (pour l'upload des pièces jointes)
- session.auto_start disabled
- zend.ze1_compatibility_mode disabled
- suhosin.session.encrypt disabled
- mbstring.func_overload disabled
Configuration PHP
La configuration PHP est réalisée via les directives du fichier .htaccess fourni dans le répertoire de roundcube.
Si vous utilisez Apache 2.2.9 ou supérieur, il est conseillé de changer le fichier .htaccess: décommentez la ligne suivante et modifiez le mot « append » en « merge » pour éviter certains de ducplication d'en-tête HTTP (si vous ne le faites pas, ça n'a pas de grosse conséquence):
#Header append Cache-Control public env=!NO_CACHE
devient donc:
Header merge Cache-Control public env=!NO_CACHE
Droits des répertoires
Il faut s'assurer que les répertoires temp/ et logs/ sont modifiables par l'utilisateur système utilisé par le serveur web. La façon de permettre cela dépend de votre configuration, mais sous Debian, cela signifie généralement que l'utilisateur www-data doit avoir les droits d'écrire dans ces répertoires, donc il faut par exemple utiliser les commandes:
chgrp www-data {temp,logs}; chmod g+w {temp,logs}
Création de la base de données
On utilise dans notre cas un serveur MySQL. Connectez-vous sous un utilisateur administrateur (généralement root), et effectuez les requêtes indiqués dans le guide d'installation :
CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'votremotdepasse';
Importer ensuite les données initiales manuellement, par exemple avec la commande suivante (ajoutez l'option -p):
mysql roundcubemail < SQL/mysql.initial.sql
Configuration de l'application
L'installation continue en se rendant à l'URL http://url-vers-votre-installation-roundcube/installer/ où il suffit de suivre les instructions.
Le script d'installation indiquera une heure incorrecte. Pour corriger cela, on peut changer le fuseau horaire utilisé par PHP. Dans notre cas, il pourra le configurer à l'heure de la France avec la commande suivante:
cat <<_EOD_ > /etc/php5/apache2/conf.d/local.ini date.timezone = "Europe/Paris" _EOD_ /etc/init.d/apache2 restart
La documentation recommande d'exécuter le script « bin/cleandb.sh » périodiquement pour supprimer tous les enregistrements marqués comme effacés. Pour cela, mettez en place un job cron. J'ai l'habitude, par souci de lisibilité, de regrouper tous les jobs cron que je mets en place sur un serveur dans un même fichier /etc/cron.d/local. Pour ajouter le nouveau job (qui s'exécutera à 1h02 tous les jours), je peux donc utiliser la commande suivante (pensez à adapter le chemin votre votre répertoire d'installation de roundcube):
echo -e '\n# Nettoyage roundcube\n2 1 * * * root /var/www/roundcube/bin/cleandb.sh' >> /etc/cron.d/local
Sécurisation miimale après installation
Après configuration, n'oubliez pas de supprimer le répertoire installer/ sous peine de laisser l'accès à des mots de passe (et/ou désactivez l'option « enable_installer» dans main.inc.php).
De même, assurez-vous que l'accès aux répertoires config/, temp/, et logs/ est bien interdit (ceci est normalement pris en charge par les directives apache dans les fichiers .htaccess de ces répertoires).
Mise à jour
En ce qui concerne la mise à jour, le fichier UPGRADING fourni par Roundcube propose de remplacer les fichiers dans la plupart des répertoires de votre installation, puis de lancer la mise à jour.
Personnellement, je préfère recopier les fichiers nécessaires vers un nouveau répertoire d'installation pour mieux maîtriser les fichiers que je modifie par rapport aux fichiers fournis par l'application.
Voici donc la procédure de mise à jour que je suis (il s'agit bien sûr d'un exemple de mise à jour de la version 0.5.2 à la 0.5.4. Adaptez les numéros de version à votre cas):
- 1. Désarchivage de l'application dans un nouveau répertoire
tar xvzf roundcubemail-0.5.4.tar.gz chown -R root: roundcubemail-0.5.4 chgrp www-data roundcubemail-0.5.4/{temp,logs} chmod g+w roundcubemail-0.5.4/{temp,logs}
- 2. Copie des fichiers de configuration (les seules fichiers qui ont été modifiés dans mon cas. Si vous avez un thème particulier, vous voudrez probablement aussi le recopier):
cp roundcubemail-0.5.2/config/{db.inc.php,main.inc.php} roundcubemail-0.5.4/config/
- 3. Lancement de la procédure de mise à jour
- soit par le web. Dans ce cas il faut modifier le fichier config/main.inc.php pour passer la variable enable_installer à true, puis rendez-vous sur http://url-vers-votre-installation-roundcube/installer/.
- ou bien en ligne de commande, auquel cas il suffit de lancer la commande:
./roundcubemail-0.5.4/bin/update.sh
- 4. Mise à jour de la base de données. Cette étape n'est nécessaire que si le script ou la page de mise à jour ci-dessus vous l'a suggéré:
./SQL/[votretypedebdd].update.sql
- 5. Sécurisation: remettre enable_installer à false dans config/main.inc.php si vous l'avez modifié
- 6. Évolution de la configuration PHP: vérifier éventuellement les directives dans .htaccess qui peuvent avoir évolué.
Votre installation Roundcube est à jour. Connectez-vous pour vérifiez que tout fonctionne bien.