apache2:mod_dav,mod_dav_fs的配置

时间:2010-07-02 12:03:47

标签: configuration apache2 webdav

在挂载点上(特别是:/ var / data /)我已经安装了一个存储所有类型数据的3tb raid分区,我想通过WebDAV共享它。所以我在我的客户端上安装了davfs2并通过添加:

来设置服务器站点
ScriptAlias "/var/www/webdav" "/var/data"
<Directory "/var/www/webdav">
   Dav On
</Directory>

最后,我将www-data用户添加到媒体组,该媒体组是对所有/ var / data内容具有读/写访问权限的组(所有内容的文件模式为660,chown为“some_owner_which_is_part_of_media:media” )。

然后a2enmod mod_dav和apache的重新启动应该会生效。好的,直到这里很好。我在我的客户端电脑上安装了davfs,它看起来很像。至少它看起来像那样。内容被列出,我很高兴。后来我尝试在我的客户端上打开一些文件,但遗憾的是它因IO错误而失败。这里出现了问题。

==> /var/log/apache2/access.log <==
jin.local - - [26/Jun/2010:14:04:45 +0200] "PROPFIND /webdav/ HTTP/1.1" 207 25152 "-" "davfs2/1.4.5 neon/0.29.0"
jin.local - - [26/Jun/2010:14:04:46 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "davfs2/1.4.5 neon/0.29.0"

==> /var/log/apache2/error.log <==
[Sat Jun 26 14:04:46 2010] [error] [client 192.168.2.50] (13)Permission denied: exec of '/var/data/test' failed
[Sat Jun 26 14:04:46 2010] [error] [client 192.168.2.50] Premature end of script headers: test

假设apache2无权访问这些内容的权限可能是一个问题,我很快就对这些文件进行了限制,因此我非常确定它必须是这样的:

# ls -la /var/data
-rw-r--r--  1 www-data www-data   22 2010-06-27 10:07 anotherTest
-rw-r--r--  1 www-data www-data    5 2010-06-26 19:28 test
# cat anotherTest
this is another test
# cat test
test

最近我还添加了身份验证,万一WebDAV可能需要它来允许我GET请求。身份验证有效,但其余部分保持不变。

此时我不知道我能改变什么。任何人都知道我可以尝试什么?

问候, d。

- 编辑 -

更多日志内容和当前配置。我只是不知道它有什么问题。正如您在日志中看到的,我可以创建(PUT)和删除(DELETE)文件。但是不要工作。

ScriptAlias /webdav/ /test/
        <Location /webdav/>
                DAV On
                AuthType Basic
                AuthName "Restricted Files"
                AuthBasicProvider file
                AuthUserFile /var/www/passwords
                AuthGroupFile /var/www/groups
                <LimitExcept PROPFIND>
                         require group webdav
                </LimitExcept>
        </Location>

这太奇了?!

192.168.2.158 - - [02/Jul/2010:21:11:38 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:38 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:39 +0200] "PROPFIND /webdav/ HTTP/1.1" 207 1882 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:39 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:39 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:39 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:42 +0200] "PROPFIND /webdav/.test.swp HTTP/1.1" 404 467 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:42 +0200] "PUT /webdav/.test.swp HTTP/1.1" 201 481 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:42 +0200] "DELETE /webdav/.test.swp HTTP/1.1" 204 141 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:45 +0200] "PROPFIND /webdav/ HTTP/1.1" 207 497 "-" "-"

==> /var/log/apache2/private-error.log <==
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] Premature end of script headers: test

1 个答案:

答案 0 :(得分:1)

我可以敲我的脑袋。解决方案很简单:

Alias /webdav/ /var/data/
<Location /webdav/>
        DAV On
        AuthType Basic
        AuthName "Restricted Files"
        AuthBasicProvider file
        AuthUserFile /etc/passwords
        AuthGroupFile /etc/groups
        <LimitExcept PROPFIND>
                 require group webdav
        </LimitExcept>
</Location>

请注意“ScriptAlias”中的“别名”。可以找到其工作原因here