Installation de WebDAV pour Apache2 sur une Debian testing (etch)
Par Thus0, jeudi 18 août 2005 à 16:42 :: GNU/Linux ::#50
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 DAVdocsCré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 DAVLockCré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 thus0Rq : 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 petrusModifier 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 restartDocumentation
- http://shawnwall.com/teach/webdav-ical.php
- http://www.webdav.org/mod_dav/install.html
- http://www.debian-administration.org/articles/285
- http://lists.debian.org/debian-user/2005/11/msg00358.html
[1] Web-based Distributed Authoring and Versioning
Commentaires
Salut,
J’ai eu beau essayé de mettre en place un WebDAV en suivant ton tuto cependant, je n’arrive pas à le faire fontionner avec Mozilla Calendar. A chaque fois, que j’essaie de créer un calendrier partager, il me dit que e fichier n’existe pas.
As-tu eu ce problème ?
Merci beaucoup pour cette doc, malheureusement ça ne fonctionne pas chez moi. J’ai l’erreur suivante dans error.log :
[Tue Oct 04 17:10:33 2005] [error] [client 192.168.1.11] The locks could not be queried for verification against a possible "If :" header. [500, #0]
[Tue Oct 04 17:10:33 2005] [error] [client 192.168.1.11] Could not open the lock database. [500, #400]
[Tue Oct 04 17:10:33 2005] [error] [client 192.168.1.11] (21)Is a directory : Could not open property database. [500, #1]
D’après ce que j’ai pu voir sur le web il semblerait qu’il faille que le repertoire webDavDB appartienne à l’utilisateur du serveur apache. En l’occurence sur Debian c’est www-data.
J’ai donc fait :
chown -R www-data:www-data webdavDB chmod 775 webdavDB
Rien y fait ! Ca ne marche toujours pas !
Une idée ?
Salut ! J’ai mis le mod_dav sur apache 2.xx ça marche au poile les tutos juste une remarque et quelques questions.
Quand tu dis :
# cd /var/lock/apache2 # touch DAVLock # chown www-data:www-data DAVLock
et bien il y a là un petit pb sur ma etch car un nettoyage se fait à chaque démarage sur ce répertoire donc ça efface le fichier DAVLock perso je l’ai mis dans : /var/lib/apache2/DAVLock
J’aurai une question concernant l’utilisation des quotas sur chaques utilisateur es que cela est possible ? et si ou es que cela se fait comme sur un utilisateur que l’on a créé du genre adduser dupond ? Ca pourai évité que Mr x sature le dic dur par exemple.
Merci pour les tutos sur le webdav c’est dommage trés peu de personne l’utilise je le trouve bin plus souple que le ftp de plus je me suis servi de ssl pour tout faire passer en https. Ce serai super d’améliorer le mode d’autentification mais là ça me depasse... du moins je ne voie pas trop comment faire si vous avez une piste je suis preneneur !
@++ ^_^’
Salut,
Je te remercie beaucoup pour ton aide et tes explications qui reste simples et compréhensibles. Je suis étudiant, et mon projet de fin d’année est de créer un serveur Webdav, ton site m’a été d’une grande utilité. J’ai pu remarquer qu’il était peu utilisé sur les serveurs. Je trouve ça bien dommage, car on trouve peu d’explications simples et clairs.
Par contre, j’avais une question, est ce que tu sais s’il est possible d’inclure plusieurs chemins vers des dossiers dans une seule balise (pour eviter de réecrire plusieurs fois la meme chose) ?
Du genre :
< Directory /var/www/enseignant/latourte-françois/ /var/www/enseignant/henri-delacourt/ >
Mais bon, j’ai bien sur essayé cela, cela ne fonctionne pas... J’ai essayé également en m’aidant des alias, mais rien n’y fait...