How to enable HTTP-DAV in Apache

apache-2.2webdav

I'm trying to enable HTTP-DAV on Apache (httpd.x86_64 2.2.3-43.el5.centos) running on CentOS 5.4.

I have the following relevant entries in my httpd.conf.

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

<IfModule mod_dav_fs.c>
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

<Location /var/www/html/updates>
    Dav On
</Location>

/var/www/html/ is the Apache root. I have reloaded Apache without any errors in the error log. I can also access this directory via HTTP in Firefox.

I have an application under development which needs to communicate with the web server over HTTP-DAV, but instead reports that the web server returned "(405) Method not allowed". This happens when it sends a PROPFIND request.

Apache's access log reports the following when that happens:

192.168.1.29 - - [25/Nov/2010:17:21:26 +0200] "PROPFIND /updates/2.0.1.0/ HTTP/1.1" 405 320 "-" "-"

Presumably HTTP-DAV isn't enabled. What am I doing wrong?

Reply to pacey: There are no Limit or LimitExcept Directives in any of Apache's configuration files. There is no .htaccess file in /var/www/html/updates/ or /var/www/html/.

Reply to Zoredache: Apache has write access to updates.

Reply to iiegn: I gave cadaver a try. Apparently WebDAV's not enabled.

dav:!> open http://hybrid/updates/
Could not access /updates/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to `hybrid' closed.

The only relevant thing in the logs (LogLevel debug) is in the access log:

192.168.1.240 - - [26/Nov/2010:14:41:45 +0200] "OPTIONS /updates/ HTTP/1.1" 200 - "-" "cadaver/0.22.3 neon/0.25.5"
192.168.1.240 - - [26/Nov/2010:14:41:45 +0200] "PROPFIND /updates/ HTTP/1.1" 405 319 "-" "cadaver/0.22.3 neon/0.25.5"

Best Answer

I finally figured it out.

Instead of

<Location /var/www/html/updates>
    Dav On
</Location>

it needs to be (Directory instead of Location)

<Directory /var/www/html/updates>
   Dav On
</Directory>