WebDAV(通过 SSL)配置在我的根服务器上的 VirtualHost 上。SSL 在所有客户端上工作正常,并且在此虚拟主机下运行的其他应用程序也正常工作。不幸的是,WebDAV 不行。
Nautilus 作为客户端运行良好,cadaver 作为客户端仅对部分 (php) 文件有效,并非全部。旧版 Internet Explorer 6 也能运行,但 Mac OS X 和 Windows 上的最新客户端无法运行。
两个 dav 模块均已启用,文件和目录均归 www-data:www-data 所有,以下摘录是我的配置的一部分(匿名)。
NameVirtualHost 1.2.3.4:443
<VirtualHost 1.2.3.4:443>
ServerName server.example.com
[...]
# WebDAV
DavLockDB /srv/dav/lockdb
[...]
Alias /serendipity "/srv/www/webdav"
<Directory "/srv/www/webdav">
DAV on
ForceType text/plain
Options +Indexes
AllowOverride None
AuthType Basic
AuthName "Serendipity Testblog"
AuthUserFile /srv/pwd/serendipity
Require valid-user
</Directory>
[...]
</VirtualHost>
有任何想法吗?
答案1
补充一点:DAV 本身可以工作并显示目录和文件,但文件检索仅会产生文件的 HTTP 解析表示。这意味着,PHP 会被解析,并且下载的文件会显示该文件,就像在浏览器中查看一样。
答案2
在 DAVLockDB 指令下方添加一行,内容如下:
ForceType text/plain
这将告诉 Apache 不要评估脚本而是回答其文件内容。
祝你好运...