Я пытаюсь включить 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.