2010-07-02 38 views
0

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

ScriptAlias "/var/www/webdav" "/var/data" 
<Directory "/var/www/webdav"> 
    Dav On 
</Directory> 

最后,我添加了www数据用户的媒体集团,这是一个已经阅读所有/写访问组/ var/data stuff(所有内容的文件模式是660,chown是“some_owner_which_is_part_of_media:media”)。

然后a2enmod mod_dav和apache的重新启动应该出现它的生命。好的,直到这里。我在客户端PC上安装了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的无权访问这个东西,我迅速chowned的文件,所以我敢肯定那一定是罚款这样的权限问题:

# 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 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

我可以轰动我的头。解决方案很简单:

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