====== WebDAV ======
El presente documento describe como configurar el servidor web Apache 2 para compartir recursos mediante las especificaciones WebDAV.
===== Configuración de módulos Apache ======
En Debian el paquete //apache2// incluye de serie los módulos necesarios para el manejo de WebDAV. Los módulos se activan con los siguientes comandos:
a2enmod dav_fs
a2enmod dav
===== Configuración de Apache =====
En el siguiente ejemplo se dispone de un servidor //apache2// con la configuración inicial por defecto. Se describirá la configuración básica para que a través de la url //**localhost/webdav**// se acceda a un directorio del servidor publicado a través de WebDAV.
Añadir las siguientes líneas de configuración:
Alias /webdav "/opt/webdav"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
al archivo //**/etc/apache2/sites-available/default**//, tras lo cual mostrará el siguiente aspecto:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
Alias /webdav "/opt/webdav"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Tras la edición del archivo es necesario recargar la configuración de Apache:
/etc/init.d/apache2 reload
El comando /etc/init.d/apache2 //**reload**// recarga la configuración del servidor Apache, aplicando los cambios realizados, sin detener el funcinoamiento del mismo, al contrario que la opción //**restart**// la cual detiene y vuelve a arrancar el servidor.
Prestar especial atención a los alias definidos en los archivos de configuración de Apache. Si el alias se define con una barra **/** al final, deberá aparecer también en la url para poder acceder, de lo contrario, el servidor devolverá un error de página no encontrada.
Mediante un navegador web acceder a la url //**localhost/webdav**// si se ejecuta el navegador en la mísma máquina que alberga al servidor Apache, o bien //**/webdav**// si el navegador está en una máquina distinta a la del servidor.
===== Creación del recurso y permisos de ficheros =====
El recurso compartido será un directorio del sistema de archivos ubicado en **/opt/**, para que el servidor Apache pueda acceder y manejar estos ficheros, el usuario //**www-data**// deberá tener privilegios de lectura y escritura sobre los mismos. En el presente ejemplo se procederá a asignar al usuario //www-data// como propietario de los archivos contenidos en el recurso compartido.
mkdir -p /opt/webdav
chown -Rf www-data:www-data /opt/webdav
Probando servidor Apache con Cadaver:
===== Configuración del esquema de autenticación =====
Para el proceso de autenticación será necesario activar el módulo de Apache //**auth-digest**// y reiniciar con la opción **restart** el servidor:
a2enmod auth_digest
/etc/init.d/apache2 restart
Crear fichero de contraseñas:
htdigest -c /etc/apache2/digest-password webdav-example usuario
El anterior comando pedirá por consola la contraseña del nuevo usuario.
El parámetro **-c** fuerza la creación de un nuevo archivo de contraseñas. En sucesivas ocasiones, para añadir un usuario al archivo de contraseñas se omitirá el parámetro **-c**, de lo contrario, el fichero será sobreescrito y todos los usuarios y claves previamente registrados se perderán.
Volver a editar el archivo **/etc/apache2/sites-available/default** añadiendo el siguiente fragmento antes de la etiqueta de cierre :
DAV On
AuthType Digest
AuthName "webdav-example"
AuthUserFile /etc/apache2/digest-password
Require valid-user
Tras realizar el último cambio, reiniciar el servidor Apache:
/etc/init.d/apache2 restart
Acceder mediante un navegador web a la url **localhost/webdav** o **/webdav** según proceda. Antes de cargar la página, el navegador solicitará el nombre y contraseña de un usuario válido.
===== Enlaces =====
[[http://www.debian-administration.org/articles/285|WebDAV on Apache]]
[[http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html|Manual mod_auth]]
[[http://www.webdav.org/mod_dav/install.html#apache]]