4. Horde/Imp

Horde/Imp? C'est quoi Horde? Horde est une dépendance de Imp écrite par les auteurs de Imp. Horde est en fait un projet visant à donner des fonctions et une interface utilisateur commune à différentes applications de productivité, de messagerie et de gestion de projet. Forcément, Imp utilise ces fonctions, donc il faut commencer par installer Horde.

4.1. Prérequis propres à Horde/Imp

Il vous faut phplib, qui est inclus dans Horde. Mais si vous voulez utiliser une version plus officielle, rien ne vous en empèche. Ce n'est pas ce que les auteurs de Horde/Imp préconisent, et comme on est en phase de test, c'est plus simple d'utiliser leur version: nous aurons moins de complications.

phplib, Horde et Imp contienent des scripts php3. php4 sait les interprêter, donc il faut juste que apache sache indiquer à php les fichiers avec l'extension .php3. Faites une recherche de "php3" dans httpd.conf, et vérifiez que les lignes suivantes sont bien décommentées:

AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php

Sinon, enlevez les commentaires.

Profitez-en pour ajouter index.php et index.php3 sur la ligne directoryindex. Et relancez apache.

4.2. Installation de phplib

  • Créer un répertoire $APPS/horde.

  • Décompresser l'archive dans $APPS/horde. Normalement, vous obtenez un répertoire $APPS/horde/horde-1.2.6.

  • Créez dans $APPS/horde un lien horde pointant sur horde-1.2.6, puis allez dans le répertoire horde-1.2.6

  • Allez dans le répertoire phplib. Le fichier README indique que la version de phplib incluse contient des modifications de la part de l'équipe de développement de Horde, ce qui est un peu dommage. De plus, indiquer que les questions spécifiques à phplib sont à poser à l'équipe de phplib est un peu léger à mon goût si l'équipe de Horde décide de maintenir sa propre branche de phplib.

  • Le fichier README indique de déplacer le répertoire phplib dans un répertoire différent. Cela n'est pas nécessaire, surtout que cette version de phplib est propre à Horde. On se débrouillera autrement.

  • Editez le fichier httpd.conf d'apache. Nous allons ajouter les permissions pour le répertoire horde ainsi que pour phplib. Ajoutez ceci (rappelez-vous que $APPS est notre convention: mettez le chemin réel dans le fichier httpd.conf):

<Directory "$APPS/horde">
 <IfModule mod_php3.c>
 php3_value include_path '$APPS/horde/horde/phplib:$APPS/horde/horde:.'
 php3_value auto_prepend_file $APPS/horde/horde/phplib/prepend.php3
 php3_value track_vars on
 php3_value magic_quotes_gpc off
 </IfModule>
 <IfModule mod_php4.c>
 php_value include_path '$APPS/horde/horde/phplib:$APPS/horde/horde:.'
 php_value auto_prepend_file $APPS/horde/horde/phplib/prepend.php3
 php_value track_vars on
 php_flag register_globals on
 php_value magic_quotes_gpc off
 </IfModule>
 Options Indexes FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all
</Directory>

Et plus bas, dans la section des alias, ajoutez l'alias suivant:

 Alias /horde "$APPS/horde/horde"
  • Relancez apache.

  • Editez local.inc, puis prepend.php3. Mettez ou supprimez des commentaires en fonction de la base de données que vous utilisez.

  • Créez les bases et tables nécessaires: dans $APPS/horde/horde/scripts/database, vous avez des scripts pour différentes bases, ainsi que des fichiers d'aide. Si vous ne connaissez pas grand chose aux bases de données, voici une manière rapide et simple de s'en sortir. Avec postgresql, et en tant que root (si vous voulez faire les choses proprement avec la base, lisez de la documentation dessus, ce n'est pas l'objet de cet article ici), essayez ceci:

    sh pgsql_cuser.sh
    psql template1 <pgsql_create.sql
    

    Des manipulations similaires amènent au même résultat avec mysql.

  • Hop, fini avec phplib.

4.3. Installation de Horde

La version utilisée est la version 1.2.6.

  • Horde est déjà décompressé, dans $APPS/horde/horde-1.2.6. Retournez dans ce répertoire, puis dans le répertoire config.

  • Copiez horde.php3.dist en horde.php3, puis éditez-le. $default->horde_root_url contient l'URL de racine de Horde, donc d'après notre configuration d'apache précédente, c'est /horde qu'il faut mettre (c'est notre alias!). A priori, pas besoin de changer les autres chemins ou URL. Vérifiez que sendmail est au bon endroit, puis modifiez les adresses de courriers électronique en fonction de vos besoins.

  • Testez Horde: c'est maintenant que les choses visibles commencent. Visitez l'URL http://localhost/horde/test.php3. Cette page vous indiquera ce qui va et ce qui ne va pas.

  • Vous devez avoir un support pour imap. Si ce n'est pas le cas, revenez à ma section des prérequis: imap est nécessaire autant pour Squirrelmail que pour Imp.

  • LDAP n'est pas nécessaire. D'ailleurs, il est à NO chez moi. Mysql ou Postgresql doivent être activés, mais l'un des deux devrait suffire. A nouveau, si les deux manquent, installez le support pour votre base de données sur Imp (à nouveau, paquet ou recompilation avec --with-mysql ou --with-pgsql)

  • Si track_vars n'est pas à YES, que phplib en marche pas ou que les tests divers de phplib ne marche pas, c'est que vous n'avez pas modifié le fichier httpd.conf comme ci-dessus lors de l'installation de phplib.

  • Si la création d'une session échoue, commencez par vérifier que tout est bien configuré pour l'accès à votre base de données.

  • Si vous êtes arrivés jusqu'ici et que cela fonctionne, mes félicitations. On en est à mi-chemin, mais les difficultés majeurs sont passées, et vous venez de vous entrainer pour les difficultés à venir. Continuez, maintenant, c'est facile! Sinon, Squirrelmail, c'est plus facile: il n'y a pas de telles dépendances.

4.4. Installation de Imp

La version utilisée est la version 2.2.6

  • Décompressez Imp dans $APPS/horde/horde-1.2.6, ce qui nous crée un nouveau répertoire $APPS/horde/horde-1.2.6/imp-2.2.6. Créez le lien symbolique $APPS/horde/horde-1.2.6/imp qui pointe sur $APPS/horde/horde-1.2.6/imp-2.2.6.

  • Il existe deux manières de configurer Imp. La première, c'est la méthode via setup.php3. C'est la plus facile, c'est celle que nous allons utiliser. La seconde, manuelle, est décrite dans le fichier docs/INSTALL.

  • Dans le répertoire $APPS/horde/horde-1.2.6 (non, pas le répertoire imp-2.2.6), vérifiez le contenu de install.sh, puis lancez-le. Il prépare les fichiers de configuration.

  • Visitez maintenant l'adresse http://localhost/horde/setup.php3 et répondez aux questions.

    • La plupart des questions ont une réponse par défaut satisfaisante. N'y touchez que si vous avez une idée précise en tête.

    • Sur la page 4, indiquez votre serveur imap. C'est habituellement le votre, mais ça peut être celui de votre fournisseur d'accès à internet, ou même une machine différente de celle qui héberge votre serveur web.

    • Page 4 toujours, la racine des dossiers mail est effectivement souvent mail/. N'hésitez pas à l'utiliser.

    • Si comme moi vous n'avez pas LDAP installé, désactivez tout ce qui concerne LDAP!

    • Page 9, on vous propose l'utilisation d'une base de données. Etant qu'elle a déjà été configurée pour phplib, rien ne vous empêche de l'utiliser aussi pour Imp! Si vous êtes en phase de test, utilisez les valeurs par défaut. Sinon, mieux vaut utiliser des paramètres un peu plus personnels pour un peu plus de sécurité.

  • Avant de finir, désactivez la configuration via le web que vous venez d'effectuer avec la commande sh ./secure.sh. Il ne faudrait pas tout de même que n'importe qui puisse reconfigurer Imp depuis n'importe où!

  • Avant de finir encore, sécurisez la base. Lisez docs/SECURITY et agissez en fonction. Si vous voulez tester sans vous préoccuper de la sécurité, éditez le fichier imp-2.2.6/config/defaults.php3 et indiquez $default->db_security_nag = false; à la place de $default->db_security_nag = true;. Attention, ceci n'est à faire que si vous faites des tests et que vous êtes déconnectés d'internet. Sinon, utilisez le script horde-1.2.6/scripts/database/dbpasswd.sh pour modifier le mot de passe. D'ailleurs, n'hésitez pas à le faire, c'est extrèmement simple, voire plus simple que de rechercher la ligne avec $default->db_security_nag = true;. Enfin, ce fichier docs/SECURITY indique des commandes (chmod et chgrp) à lancer pour encore plus de sécurité, ainsi que quelques lignes pour la configuration du serveur web, à copier/coller dans le fichier httpd.conf. Cela est inutile que je recopie ces lignes ici, je vous laisse faire les copier/coller qui vont bien vous-même chez vous.

4.5. Utilisation: quelques problèmes que vous pouvez rencontrer

Un petit tour sur https://localhost/horde/ pour voir Horde. Mais Imp se trouve ici: http://localhost/horde/imp.

Si vous ne pouvez vous authentifier parce qu'il y a un problème avec la base de données, vérifier d'abord qu'elle a bien été lancée pour accepter des connexions via TCP/IP. Avec postgresql, il faut lancer le postmaster avec l'option -i, c'est-à-dire postmaster -i -D /var/database ou pg_ctl start -o "-i" -D /var/database. Modifiez le script de démarrage dans /etc/init.d suivant vos besoins.

Si vous n'arrivez pas a vous authentifier, que vous avez bien vérifié que le vérouillage des majuscules était désactivé, que votre clavier était bien configuré en AZERTY etc, alors faires encore un tour dans /var/log et regardez le fichier syslog. Si le problème vient du fait que imap n'arrive pas à vous authentifier, vous rencontrez un problème que j'ai eu. Sur ma machine, imap est compilé avec le support MD5. Les login et mots de passe se trouvent dans /etc/cram-md5.pwd, en clair. Le format de ce fichier est le suivant:

<login>TAB<mot de passe>

Maintenant, il ne vous reste plus qu'à tester l'ensemble, avec bien sûr un maximum de navigateurs, mozilla, galeon, konqueror, skipstone, et éventuellement les deux navigateurs propriétaires les plus répandus qui seront peut-être les seuls installés là où vous en aurez peut-être besoin.

création est mise à disposition sous un contrat Creative Commons