A propos/How-To...

WebDAV [1] est une extension du protocole HTTP, permettant d’échanger des fichiers sur des serveurs distants (en général un accès en lecture/écriture à un répertoire d’un site web). Il permet ainsi de pouvoir facilement partager des fichiers entre plusieurs personnes, comme des fichiers sources d’un projet ou des ressources communes (ex : calendrier au format ical). C’est cette dernière utilisation qui m’a poussé à installer WebDAV chez moi : grâce au logiciel mozilla-calendar, sunbird ou phpicalendar, j’ai ainsi accès à mon agenda depuis n’importe où.

[Mise à jour le 06/02/2008] : pour utiliser un serveur WebDAV comme serveur de fichier à la mode FTP, voir le tutorial : Serveur de fichier avec WebDAV (apache2 + mod_dav).

Tutorial

Je suppose que vous avez déjà un serveur web apache2 configuré et fonctionnel...

Installer le module WebDAV :

  • Pour apache1 :

    # apt-get install libapache-mod-dav
  • pour apache2 :

    # apt-get install apache2-common

Charger le module WebDAV pour apache2


# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/dav.load .
# ln -s ../mods-available/dav_fs.load .
# ln -s ../mods-available/dav_fs.conf .

Créer le répertoires WebDAV : dans le tutorial, le répertoire WebDAV est /var/www/DAVdocs.


# cd /var/www
# mkdir DAVdocs
# chown www-data:www-data DAVdocs
# chmod 755 DAVdocs

Créer le fichier de lock /var/lock/apache2/DAVLock s’il n’existe pas encore (il est défini par défaut dans le fichier de configuration /etc/apache2/mods-available/dav_fs.conf).


# cd /var/lock/apache2
# touch DAVLock
# chown www-data:www-data DAVLock

Créer un login/mot de passe pour accéder au partage WebDAV. Le login/mot de passe sera stocké dans le fichier /etc/apache2/htpasswd-webdav. Pour créer un nouveau fichier de login/mot de passe, il faut passer le paramètre -c à la commande htpasswd.


# htpasswd -c /etc/apache2/htpasswd-webdav thus0
New password:
Re-type new password:
Adding password for user thus0

Rq : pour créer un autre utilisateur, tapez la commande suivante (sans le paramètre -c).


# htpasswd /etc/apache2/htpasswd-webdav petrus
New password:
Re-type new password:
Adding password for user petrus

Modifier le fichier /etc/apache2/sites-available/default


DAVMinTimeout 600
DAVDepthInfinity On

<Directory /var/www/DAVdocs>
 DAV on
 AuthName "WebDAV Storage"
 AuthType Basic
 AuthUserFile /etc/apache2/htpasswd-webdav
 <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
   Require user thus0 petrus
 </Limit>
</Directory>

Si vous voulez autoriser tous les utilisateurs définis dans le fichier /etc/apache2/htpasswd-webdav, modifiez les lignes précédentes comme ceci :


DAVMinTimeout 600
DAVDepthInfinity On

<Directory /var/www/DAVdocs>
 DAV on
 AuthName "WebDAV Storage"
 AuthType Basic
 AuthUserFile /etc/apache2/htpasswd-webdav
 <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
   Require valid-user
 </Limit>
</Directory>

Vous pouvez également modifier le fichier /etc/apache2/sites-available/ssl.conf pour accéder en https à votre site web. Remarque : si vous n’avez pas de fichier ssl.conf, vous pouvez prendre en exemple le fichier /usr/share/doc/apache2/examples/ssl.conf.gz

Relancer apache2


# /etc/init.d/apache2 restart

Documentation


[1] Web-based Distributed Authoring and Versioning