Ivは最近、私のpapacheWebサーバーにSVNサーバーをセットアップしました。 USVN http://www.usvn.fr/ をインストールして、Webインターフェイスからリポジトリを管理できるようにしました。
リポジトリを作成してnetbeansからコードをインポートしようとすると、次のエラーが発生します:org.tigris.Subversion.javahl.ClientException: RA layer request failed Server sent unexpected return value (403 Forbidden) in response to PROPFIND request for '/svn/python1'
私はユーザー名とパスワードが正しいことを知っています(そして私は別のユーザーを試しました)私はいくつかの調査をしました、そしてそれはおそらくApachesvnエラーであるようです。以下は、この仮想ホストの構成ファイルです。
<VirtualHost *:80>
ServerName svn.domain.com
ServerAlias www.svn.domain.com
ServerAlias admin.svn.domain.com
DocumentRoot /home/mrlanrat/domains/svn.domain.com/usvn/public
ErrorLog /var/log/virtualmin/svn.domain.com_error_log
CustomLog /var/log/virtualmin/svn.domain.com_access_log combined
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory "/home/mrlanrat/domains/svn.domain.com/usvn">
Options +SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Location /svn/>
ErrorDocument 404 default
DAV svn
Require valid-user
SVNParentPath /home/mrlanrat/domains/svn.domain.com/usvn/files/svn
SVNListParentPath on
AuthType Basic
AuthName "USVN"
AuthUserFile /home/mrlanrat/domains/svn.domain.com/usvn/files/htpasswd
AuthzSVNAccessFile /home/mrlanrat/domains/svn.domain.com/usvn/files/authz
</Location>
</VirtualHost>
誰かが私が間違ったことをしたかもしれないこととそれを修正する方法を指摘できますか?運が悪かったので、ファイルのアクセス許可を変更し、構成を変更してテストしました。
前もって感謝します!
更新:/home/mrlanrat/domains/svn.domain.com/usvn/files/authzの内容は次のとおりです
# This is an auto generated file! Edit at your own risk!
# You can edit this "/" section. Settings will be kept.
#
[/]
* =
#
# Don't edit anything below! All manual changes will be overwritten.
#
[groups]
python1 = mrlanrat, user
# Project python1
[python1:/]
@python1 = r
[python1:/branches]
@python1 = rw
[python1:/trunk]
@python1 = rw
そしてここに/home/mrlanrat/domains/svn.domain.com/usvn/files/htpasswdがあります
mrlanrat:*****
user:*****
アクセスログは次のとおりです。 http://Pastebin.com/RRYL1kCx エラーログは次のとおりです。 http://Pastebin.com/vR2MJj0v
関心のある部分はここにあります:
[Wed Apr 21 12:13:25 2010] [error] [client 209.129.37.170] user not found: /svn/test/trunk
[Wed Apr 21 12:13:25 2010] [error] [client 209.129.37.170] client denied by server configuration: /home/mrlanrat/domains/svn.domain.com/usvn/public/svn
Webブラウザーを介したログインは機能しているようですが、netbeansおよびその他のsvnクライアントはすべて403エラーを受け取ります。
丸一日グーグルして、この403エラーを引き起こす可能性のあるあらゆる種類の問題を見つけた後、どれも私のものではありません。私はついに私の問題を見つけました!
Apacheでmod_evasiveを有効にしました。どうやらSVN/WED-DAVはコマンドを非常に速く送信するため、ブロックされます。
では、ソリューションに戻りましょう。 mod_evasiveを無効にしてください! :)
誰かが1つの仮想ホストだけでそれを無効にする方法を知っているなら、私に知らせてください。他の仮想ホストでも有効にしたいと思います。
ありがとう!
同じ問題が発生し、定義された仮想ホストに対してmod_evasiveを無効にする可能性がないことを赤くしました。
次の「回避策」構成は、svnで機能します。
変更:/etc/Apache2/mods-available/mod-evasive.load
ファイル全体:
LoadModule evasive20_module /usr/lib/Apache2/modules/mod_evasive20.so
<モジュールmod_evasive20.cの場合>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 15
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
</ IfModule>
変更後、Apacheを再起動する必要があります。
/etc/init.d/Apache2再起動
楽しんで
あなたの/home/mrlanrat/domains/svn.domain.com/usvn/files/authz
ファイルは次のようになりますか?
私のはこのように見えます:
[groups]
everyone = user1, user2, user3
repo1users = user1
[/]
@everyone = r
[repo1:/]
@repo1users = rw
これまでにこのような問題が発生しましたが、ほとんどの場合、authzファイルの設定が間違っています。