我正在尝试在 CentOS 5.4 上运行的 Apache (httpd.x86_64 2.2.3-43.el5.centos) 上启用 HTTP-DAV。
我的 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>
Run Code Online (Sandbox Code Playgroud)
/var/www/html/
是 Apache 根。我重新加载了 Apache,错误日志中没有任何错误。我也可以在 Firefox 中通过 HTTP 访问这个目录。
我有一个正在开发的应用程序,它需要通过 HTTP-DAV 与 Web 服务器通信,但报告 Web 服务器返回“(405) Method not allowed”。当它发送 PROPFIND 请求时会发生这种情况。
发生这种情况时,Apache 的访问日志会报告以下内容:
192.168.1.29 - - [25/Nov/2010:17:21:26 +0200] "PROPFIND /updates/2.0.1.0/ HTTP/1.1" 405 320 "-" "-"
Run Code Online (Sandbox Code Playgroud)
大概没有启用 HTTP-DAV。我究竟做错了什么?
回复pacey: Apache的任何配置文件中都没有Limit
或LimitExcept
指令。/var/www/html/updates/
或 中没有 .htaccess 文件/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.
Run Code Online (Sandbox Code Playgroud)
日志中唯一相关的内容(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"
Run Code Online (Sandbox Code Playgroud)
我终于弄明白了。
代替
<Location /var/www/html/updates>
Dav On
</Location>
Run Code Online (Sandbox Code Playgroud)
它需要是(Directory
而不是Location
)
<Directory /var/www/html/updates>
Dav On
</Directory>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19815 次 |
最近记录: |