El objetivo de WebDAV es hacer de la World Wide Web un medio legible y editable, en línea con la visión original de Tim Berners-Lee. Este protocolo proporciona funcionalidades para crear, cambiar y mover documentos en un servidor remoto (típicamente un servidor web). Esto se utiliza sobre todo para permitir la edición de los documentos que sirve un servidor web, pero puede también aplicarse a sistemas de almacenamiento generales basados en web, que pueden ser accedidos desde cualquier lugar. La mayoría de los sistemas operativos modernos proporcionan soporte para WebDAV, haciendo que los ficheros de un servidor WebDAV aparezcan como almacenados en un directorio local.
Preparación/instalación
Vamos a ver los pasos (sencillos) para activar WebDAV en Apache. Lo primero que hay que verificar es que el módulo mod_dav está cargado, ya sea de forma estática o dinámica. Normalmente cuando instalamos Apache por gestor de paquetes viene cargado de forma dinámica en el fichero httpd.conf:
Loadmodule dav_module modules/libdav.so
Si por contra compilamos Apache manualmente podemos decidir si compilarlo estáticamente o dinámicamente (como hemos visto antes). Para hacerlo estáticamente añadiremos la directiva correspondiente a la línea de compilación y podremos ver si está cargado con el comando:
# httpd -l
Otra opción es instalar el paquete por yum/apt/pkg si el paquete está disponible en un repositorio.
Configuración
Lo primero que tenemos que hacer es activar el soporte para WebDAV a nivel general de Apache, para ello añadiremos la siguiente línea en el fichero httpd.conf. Podemos restringirlo a nivel de <Directory> o <Location>:
Dav On
Además de esto, debemos especificar la base de datos de bloqueos (Lock Database) en la sección global de la configuración del httpd.conf:
DavLockDB /etc/apache/var/DavLock
Este directorio debe tener permisos de escritura para el usuario y grupo que ejecuta el servidor Apache.
El resultado final sería el siguiente, en este ejemplo activamos WebDAV en una ubicación (/webdav) únicamente para usuarios autenticados (admin) configurados con htpasswd
DavLockDB /usr/local/apache2/var/DavLock <Location /webdav> Dav On AuthType Basic AuthName DAV AuthUserFile user.passwd <LimitExcept GET OPTIONS> require user admin </LimitExcept> </Location>
Estas mismas directivas (a excepción del DavLockDB) podríamos añadirlas dentro de un virtualhost.
Conectar al WebDAV
Muchos sistemas soportan acceso a WebDAV de forma nativa. No obstante, en Linux podéis usar cadaver sobre línea de comandos:
$ cadaver http://dav.test.com/webdav/ ... ... dav:/webdav/>
Esta escrito muy genericamente y uno se pierde con facilidad. muy poco util.