4. Configurer et installer les services WebDAV

Et maintenant la partie la plus facile. Dans cette section, nous rendrons un répertoire situé à la racine d'Apache disponible à WebDAV.

4.1.  Modifications au fichier /usr/local/apache/conf/httpd.conf

Vérifiez que la directive Apache suivante apparaît dans le fichier /usr/local/apache/conf/httpd.conf :

Addmodule mod_dav.c

Si elle n'y est pas, ajoutez la. Cette directive informe Apache du support des fonctionnalités de DAV. La directive doit être placée à l'extérieur des conteneurs.

Ensuite nous devons déterminer où Apache stockera le fichier DAVLockDB. DAVLockDB est une base de données de verrouillage pour WebDAV. le processus httpd doit avoir les droits en écriture dans ce répertoire.

J'enregistre le fichier DAVLock sous /usr/local/apache/var. J'utilise aussi ce répertoire pour d'autres besoins. Ajoutez la ligne suivante dans votre fichier /usr/local/apache/conf/httpd.conf pour préciser que le fichier DAVLockDB est situé dans le répertoire /usr/local/apache/var :

DAVLockDB /usr/local/apache/var/DAVLock

La directive doit être placée à l'extérieur des conteneurs.

4.2. Créer un répertoire pour DAVLockDB

Comme il est mentionné plus haut, il faut créer un répertoire pour DAVLockDB auquel le processus du serveur Web doit pouvoir accéder en écriture. D'habitude, le processus du serveur Web s'exécute sous l'utilisateur « nobody ». Vérifiez-le sur votre système en utilisant la commande :

ps -ef | grep httpd

à partir de /usr/local/apache. Créez le répertoire et définissez ces permissions en utilisant les commandes suivantes :

# cd /usr/local/apache
# mkdir var
# chmod -R 755 var/
# chown -R nobody var/
# chgrp -R nobody var/

4.3. Donner l'accès à DAV

Donner l'accès à DAV est une tâche insignifiante. Pour autoriser DAV à accéder à un répertoire situé sous la racine d'Apache, ajoutez simplement la directive suivante dans le conteneur de cette directive particulière :

DAV On

Cette directive autorisera DAV à accéder au répertoire et à ses sous-répertoires.

Ce qui suit est un exemple de configuration activant WebDAV et le service d'authentification LDAP dans /usr/local/apache/htdocs/DAVtest. Placez ceci dans le fichier /usr/local/apache/conf/httpd.conf.

DavLockDB /tmp/DavLock
<Directory "/usr/local/apache2/htdocs/DAVtest">
  Options Indexes FollowSymLinks
  AllowOverride None
  order allow,deny 
  allow from all
  AuthName "SMA Development server"
  AuthType Basic
  LDAP_Debug On
  #LDAP_Protocol_Version 3
  #LDAP_Deref NEVER
  #LDAP_StartTLS On
  LDAP_Server you.ldap.server.com
  #LDAP_Port 389
  # If SSL is on, must specify the LDAP SSL port, usually 636
  LDAP_Port 636
  LDAP_CertDbDir /usr/local/apache2/sslcert
  Base_DN "o=SDS"
  UID_Attr uid
  DAV On
  #require valid-user
  require valid-user
  #require roomnumber "123 Center Building"
  #require filter "(&(telephonenumber=1234)(roomnumber=123))"
  #require group cn=rcs,ou=Groups
</Directory>

4.4. Créer un répertoire nommé DAVtest

Comme il est mentionné dans une section précédente, le processus du serveur Web doit avoir les droits en écriture dans tous les répertoires DAV. Dans cet exemple nous considérons que le serveur Web s'exécute sous l'utilisateur « nobody ». La plupart du temps c'est le cas. Pour vérifier sous quel utilisateur httpd s'exécute, saisissez :

# ps -ef | grep httpd

Créez un répertoire nommé « DAVtest » dans le répertoire /usr/local/apache/htdocs :

# mkdir /usr/local/apache/htdocs/DAVtest

Changez les permissions du répertoire pour le rendre accessible au processus httpd en lecture et écriture. Considérant que httpd s'exécute sous l'utilisateur « nobody », utilisez les commandes suivantes :

# cd /usr/local/apache/htdocs
# chmod -R 755 DAVtest/
# chown -R nobody DAVtest/
# chgrp -R nobody DAVtest/

4.5. Redémarrer Apache

Pour finir, vous devez exécuter la routine du test de configuration fournie avec Apache pour vérifier la syntaxe du fichier httpd.conf :

# /usr/local/apache/bin/apachectl configtest

S'il y a des messages d'erreur, vérifiez que vous avez suivi correctement toutes les étapes mentionnées ci-dessus. Si vous n'arrivez pas à comprendre ce que signifie le message d'erreur, n'hésitez pas à m'envoyer un courrier électronique (en anglais) avec le message d'erreur ().

Si le test de configuration a réussi, démarrez le serveur Web Apache :

# /usr/local/apache/bin/apachectl restart

À présent, vous avez un serveur WebDAV Apache utilisant LDAP pour l'authentification et SSL pour le chiffrement.

4.6. Test de conformité au protocole du serveur WebDAV

Il est très important que le serveur WebDAV que nous venons juste d'installer soit totalement compatible avec le protocole WebDAV-2. S'il n'est pas totalement compatible, les applications WebDAV côté client pourront ne pas fonctionner correctement.

Pour tester la compatibilité nous utiliserons un outil nommé Litmus. Litmus est une suite de tests de compatibilité avec le protocole d'un serveur WebDAV, qui est destinée à tester si un serveur est compatible avec le protocole WebDAV selon les spécifications de la norme RFC2518.

Téléchargez les sources de Litmus du site http://www.webdav.org/neon/litmus/ et placez les dans le répertoire /tmp/downloads

Puis utilisez gzip et tar pour extraire les fichiers :

# cd /tmp/downloads
# gzip -d litmus-0.6.x.tar.gz
# tar -xvf litmus-0.6.x.tar
# cd litmus-0.6.x

Il est facile de compiler et d'installer Litmus :

# ./configure
# make
# make install

make install installera les fichiers binaires de Litmus dans les répertoires /usr/local/bin et les fichiers d'aide dans /usr/local/man

Pour tester la compatibilité du serveur WebDAV que vous venez d'installer, recourez à la commande suivante

# /usr/local/bin/litmus http://you.dav.server/DAVtest userid passwd