Niveau :      
Résumé : DAV On

Webdav

Que vous hébergiez un site web ou que vous partagiez des données, il est fort probable que vous ayez un serveur FTP. C'est ce qui est souvent considéré comme le plus pratique pour permettre le dépôt de données. Et pourtant j'ai mieux à vous proposer.

Imaginez un outil permettant l'authentification, l'envoi et la réception de fichiers ou de répertoires, un protocole qui traverse les firewalls et qui supporte nativement le ssl, un outil très simple à mettre en place et surtout pour lequel tout le monde ou presque dispose d'un client.

Cet outil c'est webdav !

En effet tout le monde dispose d'un client webdav :

  • gnome : urls en dav://serveur/ dans nautilus
  • kde : url en webdav://serveur/ dans konqueror
  • pur Linux : montage réseau avec davfs
  • Windows XP : ouvrir une url (http://serveur/) en tant que dossier web dans internet explorer
  • Windows Vista : monter un disque réseau

Ces clients permettent d'accéder à un partage webdav comme on le fait avec n'importe quel navigateur de fichier. De plus dans la plupart des cas il est possible d'éditer les fichiers directement à distance (notez que pour windows XP, seules les applications Microsoft Office le peuvent).

Voilà pour la simplicité. D'autre part webdav est une extension de HTTP qui tourne sur le port 80 par défaut, par conséquent il traverse la plupart des firewalls et des proxy.

Configuration

Et enfin voyons le côté serveur. Nous allons travailler à partir d'un serveur apache déjà installé. Si ce n'est pas le cas apt-get install apache2 vous en fournira un déjà configuré (attention cela ne fonctionne qu'à partir de la version 2).

Tout d'abord chargeons les modules qui conviennent. Si vous êtes sous debian :

$ a2enmod dav_fs dav

Sinon éditez votre fichier de configuration apache et ajoutez

LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so

Maintenant activons webdav sur un des répertoires du serveur. Pour cela ajoutez les directives suivantes dans le virtualhost concerné :

<Location /writable>
    Dav On
</Location>

Et voilà, nous avons un répertoire accessible en lecture et écriture avec webdav. Vérifiez tout de même que l'utilisateur serveur apache a le droit d'écrire dans le répertoire en question.

Maintenant faisons un peu plus fin. Comme DAV permet l'écriture sur le serveur WEB, il nous faut être prudent. Gérons des droits d'accès différents en fonction des utilisateurs.

<Location /writable>
    Dav On
    <Limit GET HEAD OPTIONS>
        # Accès en lecture : autorisé
    </Limit>
    <LimitExcept GET HEAD OPTIONS>
        # Accès en écriture : limité aux utilisateurs valides
        AuthName "WEBDAV: Acces restreint"
        AuthUserFile /srv/http/users
        require valid-user
    </Limit>
</Location>

Remarques

Petite note tout de même, avec apache, même à l'intérieur d'une arborescence webdav, le php est interprété. Par conséquent, si vous voulez permettre la gestion d'un site PHP avec webdav, il vous faut créer un alias pour lequel le php n'est pas interprété mais qui sera servi par webdav (alias ou lien symbolique). Mais il n'y a pas que le PHP, voici quelqeus solutions possibles.

Pour éviter toute interprétation (méthode la plus sûre, idéale en mode "FTP") :

# attention, la navigation avec un navigateur classique sera impossible
<Directory /srv/monsite>
    SetHandler default-handler
</Directory>

Si vous voulez seulement supprimer l'interprétation du php, par exemple pour permettre un accès web avec la même URL que pour WebDAV (plus pratique pour les utilisateur si le site est un espace de stockage commun, mais pensez quand même aux cgi et autres shtml ...) :

<Location />
    AddType text/plain .php
</Location>

Et si vous utilisez webdav pour partager et éditer des document; notez que les outils Microsoft Office ont quelques bugs avec la gestion des locks. Il arrive donc qu'il plantent après avoir oublié de renouveler le lock sur le fichier. Conseillez donc à vos utilisateurs de faire des sauvegardes régulièrement et s'ils laissent des documents ouverts très longtemps de les rouvrir avant de les éditer.

J'espère vous avoir convaincu de l'intérêt de webdav.