web-dev-qa-db-ja.com

Apache svnサーバーの問題(403禁止)

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エラーを受け取ります。

2
lanrat

丸一日グーグルして、この403エラーを引き起こす可能性のあるあらゆる種類の問題を見つけた後、どれも私のものではありません。私はついに私の問題を見つけました!

Apacheでmod_evasiveを有効にしました。どうやらSVN/WED-DAVはコマンドを非常に速く送信するため、ブロックされます。

では、ソリューションに戻りましょう。 mod_evasiveを無効にしてください! :)

誰かが1つの仮想ホストだけでそれを無効にする方法を知っているなら、私に知らせてください。他の仮想ホストでも有効にしたいと思います。

ありがとう!

0
lanrat

同じ問題が発生し、定義された仮想ホストに対して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再起動

楽しんで

1
chris hehne

あなたの/home/mrlanrat/domains/svn.domain.com/usvn/files/authzファイルは次のようになりますか?

私のはこのように見えます:

[groups]
everyone = user1, user2, user3
repo1users = user1

[/]
@everyone = r

[repo1:/]
@repo1users = rw

これまでにこのような問題が発生しましたが、ほとんどの場合、authzファイルの設定が間違っています。

0
Andrew Cox