Pré requis
Il faut charger le module d’authentification ldap pour Apache car mod-vhost-ldap est basé dessus. Le module est présent sur le système mais non activé dans Apache.
apt-get install libapr1-dev libaprutil1-dev
a2enmod authnz_ldapInstall du module
Maintenant, on va activer le support des hôtes virtuels sur LDAP avec le module qui va bien.
apt-get install libapache2-mod-vhost-ldap
a2enmod vhost_ldap
/etc/init.d/apache2 force-reloadLe fichier de configuration du module est dans le dossier /etc/apache2/mods-enabled :
<IfModule mod_vhost_ldap.c>
VhostLDAPEnabled on
VhostLDAPUrl "ldap://127.0.0.1/ou=vhosts,dc=aternatik,dc=lan"
VhostLdapBindDN "cn=admin,dc=aternatik,dc=lan"
VhostLDAPBindPassword "secret"
</IfModule>Configuration du serveur LDAP
Il faut inclure les schémas livrés avec le paquet. Vous les trouverez dans le dossier
cp /usr/share/doc/libapache2-mod-vhost-ldap/mod_vhost_ldap.schema /etc/ldap/schema/Modifier slapd.conf puis redémarrer le service LDAP pour prendre en compte les modifications. (Vérifier les index)
Organisation de l’annuaire
Il faut bien sûr créer auparavant une branche dans l’annuaire LDAP qui va contenir les vhosts. Voici une image illustrant comment j’ai organisé le DIT :

Ca donne des idées, n’est ce pas ?
Fichier ldif d’un hôte virtuel
dn: apacheServerName=titi.lan,ou=vhosts,dc=aternatik,dc=lan
objectclass: top
objectclass: apacheConfig
apacheServerName: titi.lan
apacheDocumentRoot: /home/titi/htdocs
apacheServerAdmin: test@toto.comLe module mod-vhost-ldap prend en charge suexec avec les attributs apacheSuexecUser et apacheSuexecGroup
La documentation du module est bien sûr fournie avec le paquet mais elle est aussi disponible en ligne sur le site du module : http://modvhostldap.alioth.debian.org/
Conclusion...
C’est de la baaalle ![]()
En comparaison d’autres modules (comme mod-vhost-dbi qui stocke les infos des vhost dans mysql) gérer les hôtes virtuels avec LDAP permet de mieux gérer la configuration Apache...
Seul regret, être limité dans les directives apache que l’on peut passer grâce au module vhost-ldap. Oubliez les configurations avec suPHP ou autre FastCGI (ou développez le module en C, ce qui est au dessus de mes compétences...)



