2010-07-02 36 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