Vous êtes sur la page 1sur 27

Horde

Installation et configuration
sur
un système Zentyal
• Descriptions:

Horde est un projet visant a créer une application collaborative simple et accessible
basé sur le « horde framework ». Dans ce but a été conçu une plateforme d'émail horde
connu sous le nom de « Horde Groupware Webmail Edition ». Le regroupement de
plusieurs modules indépendant permet à ce webmail d'être un des mieux noté du moment.
il a notamment été mis en place dans plusieurs écoles et universités françaises
comme l'école Centrale de Nantes ou bien l'esup de Paris.

Zentyal est une distribution Linux basé sur Ubuntu server 10.04 LTS. Ainsi il
bénéficie de tout les avantages de cette distribution, de plus il ajoute un bureau simple et
fonctionnel ainsi qu'une interface web de gestion pour les services du serveur.

Zentyal est par ces propres concepteurs comparé à Windows small business et ce
propose donc d'être une solution pour les entreprises modestes voulant un système
performant et simple d'utilisation.
• Serveur Zentyal :

Au préalable les services suivant devront être installés :

les mis a jours de tout ces services devront être faites avant de commencer
l'installation de horde.

De plus, afin de faciliter l'installation et la configuration de horde, il sera installer les


utilitaires suivant :
− luma : pour le LDAP
− phppgadmin: pour la base de données postgresql
 L'installation de horde peut maintenant commencer :

Installation du paquet :
> apt-get install horde3

Aller dans le dossier /etc/apache2/sites-available/, une fois là, créer un fichier


« horde » et l'éditer avec les paramètres suivant :

Alias /horde3 /usr/share/horde3

<Directory /usr/share/horde3/>
DirectoryIndex index.php
Options -Indexes +FollowSymLinks
AllowOverride Options

Order allow,deny
Allow from all
</Directory>

Ce fichier est la configuration et la déclaration du site de horde dans apache, lancer


cette commande pour l'activer:
> a2ensite horde

Relancer apache :
> /etc/init.d/apache2 restart

Dans un navigateur, se rendre sur 'Http://IP du serveur/horde3/test.php', là une


fenêtre s'affiche, elle recense tout les modules étant utile à horde qui sont manquant.
Tout les modules ne sont pas obligatoire pour un fonctionnement basique de horde.
Les pages suivantes vont montrer un exemple de 'test.php' avec quelques commande
pour installer certain modules.
Pour les modules contenus dans « php Module Capabilities » après l'installation d'un
module si cela est demandé dans la console il faut ensuite aller dans /etc/php5/conf.d/ pour
créer le fichier correspondant :
Par exemple pour le module « GEOIP » créer le fichier :
/etc/php5/conf.d/geoip.ini.

Et l'éditer :
« extension=geoip.so »

De plus certains de ces modules, selon le cas rencontré, auront besoin de prérequis
spécifiques pour s'installer, par exemple pour GEOIP exécuter au préalable les commandes
suivantes :
>apt-get install php5-dev
>apt-get install re2c
Depuis sa dernière version, php ne supporte plus l'extension « mime_magic » celle ci
a en effet été remplacé par l'extension « fileinfo ».
Lorsque tout les modules ( selon les cas ) seront sur « Yes » il sera alors possible
d'accéder à la page d'administration de horde en tant que « Administrator ».

http://IP du serveur/horde3/

Une page blanche avec une unique phrase apparaît et invite l'utilisateur a se rendre
dans un fichier de documentation. Après la lecture de ce fichier se rendre sur le fichier
suivant :
/etc/horde/horde3/conf.d

Une fois a l'intérieur commenter les lignes 2 et 3, enregistrer et retourner à l'adresse


précédente. La configuration de horde est maintenant totalement accessible. Avant de
commencer à configurer il faut qu'Apache en soit le propriétaire :

> chown -R www-data:www-data /etc/horde/


Le premier onglet à configurer est celui de « Authentication », il est très important
d'inscrire dans le premier champs le nom de, la ou les personnes qui auront en charge
l'administration de horde pour le reste voir l'exemple suivant montrant une authentification
par le LDAP :

Une fois tout les champs renseigner, cliquer sur « Générer la configuration de
horde »
pour créer le fichier de configuration et son backup dans le dossier de horde.
Ainsi il est possible de retourner en arrière a tout moment en supprimant le fichier
/etc/horde/horde3/conf.php et en renommant /etc/horde/horde3/conf.bak.php.
Base de donnée

Pour que horde puisse fonctionner il est nécessaire d'installer une base de donnée,
horde en supporte 7 différentes, il y a donc le choix. Zentyal s'installe avec les deux bases
de données mysql et postgresql. Le choix s'est posé sur cette dernière pour des raisons de
fonctionnalités.

Avant de créer la base de données, rajouter dans le fichier suivant les deux lignes ci
après :
/etc/postgresql/8.4/main/pg_hba.conf

Ajouter après la ligne « Database administrative login by UNIX sockets » ,

« local horde horde trust


host horde horde 127.0.0.1/32 trust »

Redémarrer la base de donnée :


> /etc/init.d/postgresql-8.4 restart

Ceci va permettre au futur utilisateur « horde » de se connecter à la base de données.


Il faut maintenant créer la base de données a l'aide du script « create.pgsql.sql » trouvé dans
/usr/share/doc/horde3/examples/script/sql et des commandes suivantes :
> su - postgres
> psql -d template1 -f create.pgsql.sql

Le script va lancer la base de données « horde » avec un utilisateur « horde ». Il sera


nécessaire de définir le mot de passe pour cet utilisateur avec cette commande si les lignes
correspondantes dans le script n'ont pas été décommenté :
> psql -qc « ALTER USER horde WITH PASSWORD 'horde' ; template1
postgres

Ensuite dans la fenetre de configuration de horde, aller sur l'onglet « Database » et


renseigner les champs avec les éléments nécéssaires et générer la configuration.
Les modules

Pour la configuration des modules de horde, il est possible à ce stade de ne seulement


cliquer que sur le bouton « générer ». Pour une configuration approfondie voir la partie de
ce document dédié a ce sujet.

Maintenant il faut installer les modules de horde suivant:

− IMP4 : service de mail


− TURBA2 : carnet d'adresse
− KRONOLITH2 : agenda collaboratif
− NAG2 : gestionnaire de tache
− DIMP1 : module d'affichage dynamique pour IMP4

 1-Installation de IMP4

Installer le paquet :
> apt-get install imp4

Faire d'apache le propriétaire du dossier pour pouvoir générer la configuration :


> chown -R www-data:www-data /etc/horde/imp4

A l'aide de phppgadmin, injecter les tables SQL du fichier suivant dans la base de
données :
/usr/share/doc/imp4/examples/script/sql/imp.sql

A partir du navigateur dans l'onglet 'administration' puis 'setup', il est possible de


générer la configuration de imp4.

Une fois la configuration effectué, éditer le fichier :


/etc/horde/horde3/registry.php
Là, trouver le paragraphe correspondant a imp4 et mettre le statut sur 'actif' :

$this->applications['imp'] = array(
'fileroot' => '/usr/share/horde3/lib' . '/../imp',
'webroot' => $this->applications['horde']['webroot'] . '/imp',
'name' => _("Mail"),
'status' => 'active',
'provides' => array('mail', 'contacts/favouriteRecipients')

Enfin, éditer le fichier /etc/horde/imp4/servers.php , et entrer les paramètres


souhaités dans un des exemples donnés dans ce fichier :

$servers['imap'] = array(
'name' => 'Zentyal-2',
'server' => 'Zentyal-2.pep19.local',
'hordeauth' => false,
'protocol' => 'imap/ssl/novalidate-cert',
'port' => 993,
'maildomain' => 'pep19.test3',
'smtphost' => 'smtp.example.com',
'smtpport' => 25,
'realm' => '',
'preferred' => ''

Le webmail est maintenant configuré.

 2-Installation de TURBA2

Installer le paquet :
> apt-get install turba2

Il est conseillé d'installer aussi le paquet php-net-ldap :


> apt-get install php-net-ldap

Faire d'apache le propriétaire du dossier pour pouvoir générer la configuration :


> chown -R www-data:www-data /etc/horde/turba2

A l'aide de phppgadmin,dans la base de données, injecter les tables SQL du fichier


suivant :
/usr/share/doc/turba2/examples/script/sql/turba.pgsql.sql

A partir du navigateur dans l'onglet 'administration' puis 'setup' il est possible de


générer la configuration de turba2.

Une fois la configuration effectuée, editer le fichier :


/etc/horde/horde3/registry.php

Là, trouver le paragraphe correspondant a turba2 et mettre le statut sur 'actif'.

Aller sur le fichier /etc/horde/turba2/sources.php, éditer à partir de là les


paramètres en fonction du cas rencontré.

Voici un exemple de connexion au LDAP :

$cfgSources['localldap'] = array(
'title' => 'PEP19',
'type' => 'ldap',
'params' => array(
'server' => 'zentyal.pep19.local',
'port' => 389,
'tls' => false,
'root' => 'ou=Users,dc=zentyal,dc=pep19,dc=local ',
// 'bind_dn' => 'cn=ebox,dc=zentyal,dc=pep19,dc=local ',
// For Active Directory:
// 'bind_dn' => 'username@example.com',
// 'bind_password' => '****************',
'sizelimit' => 200,
// For Active Directory:
// 'sizelimit' => 0,
'dn' => array('cn'),
'objectclass' => array('inetOrgPerson',
'posixAccount'),
// Add 'turbaContact' to this array if
// using
// 'turbaType' attribute below, and
// 'calEntry'
// if using 'freebusyUrl'.
// For Active Directory:
// 'objectclass' => array('organizationalPerson',
// 'user',
// 'group',
// 'contact'),
'scope' => 'one',
// For Active Directory:
// 'scope' => 'sub',
'charset' => 'utf-8',
// Consult the LDAP schema to verify that all required
// attributes for
// an entry are set and add them if needed.
'checkrequired' => false,
// Value used to fill in missing required attributes.
'checkrequired_string' => ' ',
// Check LDAP schema for valid syntax. If this is false an
// address
// field is assumed to have postalAddress syntax; otherwise
// the schema

// is consulted for the syntax to use.


'checksyntax' => false,
'version' => 3,

// For Active Directory you probably want to also set the


// following parameters:
// 'deref' => LDAP_DEREF_ALWAYS,
// 'filter' => '&(SAMAccountName=*)(mail=*)',
// 'referrals' => 0,
),
'map' => array(
'__key' => 'dn',

// Remove this mapping if using Active Directory server:


'__uid' => 'uid',

// From horde.schema. Make sure you have


// 'turbaContact' objectClass
// included above:
// '__type' => 'turbaType',
// '__members' => 'turbaMembers',

'name' => 'cn',


'email' => 'mail',
'homePhone' => 'homephone',
'workPhone' => 'telephonenumber',
'cellPhone' => 'mobiletelephonenumber',
'homeAddress' => 'homepostaladdress',

// From rfc2739.schema:
// 'freebusyUrl' => 'calFBURL',

// For Active Directory servers:


// 'name' => 'displayname',
// 'title' => 'title',
// 'cellPhone' => 'mobile',
// 'department' => 'department',
// 'company' => 'company',
),
'search' => array(
'name',
'email',
'homePhone',
'workPhone',
'cellPhone',
'homeAddress'

),

'strict' => array(


'dn',
),
'approximate' => array(
'cn',
),
// For Active Directory servers:
// 'approximate' => array(
// 'displayname',
// 'samaccountname',
// ),
'export' => true,
'browse' => true,
);

Le carnet d'adresse est maintenant installé.

 3-Installation de kronolith2

Installer le paquet :
> apt-get install kronolith2

Faire d'apache le propriétaire du dossier pour pouvoir générer la configuration :


> chown -R www-data:www-data /etc/horde/kronolith2

A l'aide de phppgadmin,dans la base de données, injecter les tables SQL du fichier


suivant :
/usr/share/doc/kronolith2/examples/script/sql/kronolith.pgsql.sql

A partir du navigateur dans l'onglet 'administration' puis 'setup' il est possible


de générer la configuration de kronolith2.

Une fois la configuration générée, éditer le fichier :


/etc/horde/horde3/registry.php

Là, trouver le paragraphe correspondant a kronolith2 et mettre le statut sur 'actif'.

Kronolith2 est maintenant installé.

 4-Installation de nag2

Installer le paquet :
> apt-get install nag2

Faire d'apache le propriétaire du dossier pour pouvoir générer la configuration :


> chown -R www-data:www-data /etc/horde/nag2

A l'aide de phppgadmin,dans la base de données, injecter les tables SQL du fichier


suivant :
/usr/share/doc/nag2/examples/script/sql/nag.sql

A partir du navigateur dans l'onglet 'administration' puis 'setup' il est possible de


générer la configuration de nag2.

Une fois la configuration générée, éditer le fichier :


/etc/horde/horde3/registry.php

Là, trouver le paragraphe correspondant a nag2 et mettre le statut sur 'actif'.

Nag2 est maintenant installé.

 5-Installation de dimp1

Installer le paquet :
> apt-get install dimp1

Faire d'apache le propriétaire du dossier pour pouvoir générer la configuration


> chown -R www-data:www-data /etc/horde/dimp1

A partir du navigateur dans l'onglet 'administration' puis 'setup' il est possible de


générer la configuration de dimp1.
Une fois la configuration de dimp1 générée, l'installation de horde et de ses modules
est alors terminé.

 La configuration de horde peut commencer

Pour horde, la configuration est divisée en 31 onglets, seulement 9 de ces onglets ont
une importance pour assurer un bon fonctionnement de l'application.
Pour chacun de ces onglets est donné un exemple de configuration :

1-Database

Voir l'exemple donné précedemment.

2-Authentication

Cet onglet est très important, surtout ne pas oublier d'inscrire le nom de l'utilisateur
qui aura en charge l'administration de horde.
Dans horde il existe plusieurs moyens pour être authentifier : par le LDAP, par une
base de données ou encore par une tierce application comme le webmail.
Au début de cette installation, c'est l'authentification par le LDAP qui a été choisi,
toutefois pour des raisons pratiques ( obligation de s'identifier plusieurs fois, 1 fois pour
horde, plus 1 fois pour Imp ), cette méthode a été abandonné au profit de celle faite par
Imp4 ( une seule identification ).
Pour ce faire, dans la configuration de horde, à l'onglet « authentication » aller sur la
ligne « $conf[auth][driver] » et choisir « Let a horde application handle
authentication », la fenêtre va se griser et des nouvelles options vont apparaître.
Aller sur l'option « $conf[auth][params][apps] » et choisir « Imp ».

Surtout ne pas oublier d'inscrire dans le champ « $conf[auth][admins] » une adresse


émail valide dans le serveur de mail appartenant à la personne ayant en charge
l'administration de horde.
3-Préférence system

4-DataTree System
5-Groups
6-Permissions

7-Shares
Pour activer les partages, laisser décocher l'option suivante :
« $conf[share][no_sharing] »

8-Virtual Files Storage

9-Custom Session Handled


Configuration des modules de horde, ceux-ci ne nécessitent aucune configuration
particulière dans notre cas. Un exemple est donné pour chacun d'eux.

1-Imp4

Imp4 est le module avec le plus d'onglets de configuration (8) :


2-Turba2
3-Kronolith2

4-Nag2
5-Dimp1
Conclusion

L'installation et la configuration sont terminées. Toutes les fonctionnalités et options


de horde n'ont pu être évoquer dans ce document tellement il en existe de différentes.
Horde est en effet un produit très complet, mais qui a su garder une certaine
simplicité dans sa mise en place, il dispose d'une communauté importante et active ce qui lui
promet une évolution surement intéressante