Назад | Перейти на главную страницу

Как включить HTTP-DAV в Apache?

Я пытаюсь включить HTTP-DAV на Apache (httpd.x86_64 2.2.3-43.el5.centos), работающем на CentOS 5.4.

У меня есть следующие соответствующие записи в моем 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/ это корень Apache. Я перезагрузил Apache без ошибок в журнале ошибок. Я также могу получить доступ к этому каталогу через HTTP в Firefox.

У меня есть разрабатываемое приложение, которое должно взаимодействовать с веб-сервером через HTTP-DAV, но вместо этого сообщает, что веб-сервер вернул «(405) Метод запрещен». Это происходит, когда он отправляет запрос PROPFIND.

Когда это происходит, журнал доступа Apache сообщает следующее:

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

Предположительно HTTP-DAV не включен. Что я делаю не так?

Ответ на pacey: Нет Limit или LimitExcept Директивы в любом из файлов конфигурации Apache. Нет файла .htaccess в /var/www/html/updates/ или /var/www/html/.

Ответ Zoredache: Apache имеет право записи обновлений.

Ответ на iiegn: Я попробовал труп. Очевидно, WebDAV не включен.

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

Единственная важная вещь в журналах (отладка LogLevel) - это журнал доступа:

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"

Я наконец-то понял.

Вместо того

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

это должно быть (Directory вместо того Location)

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

Настройка кажется достаточной.

Чтобы проверить настройку, вы можете попробовать труп, клиент WebDAV командной строки для Unix. Начнем с чего-нибудь вроде "> open URL" чтобы узнать, можете ли вы установить соединение. Затем, "> propget ." или "> ls"

... и с PROPFIND просьба обратить внимание на: http://httpd.apache.org/docs/2.2/mod/mod_dav.html#davdepthinfinity.