Apache svn 服务器问题(403 禁止)

Apache svn 服务器问题(403 禁止)

我最近在我的 papache web 服务器上设置了一个 SVN 服务器。我安装了 USVNhttp://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'

我知道我的用户名和密码是正确的(我尝试了不同的用户)我做了一些研究,似乎这很可能是 Apache svn 错误。以下是此虚拟主机的配置文件。

<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 错误。

答案1

我遇到了同样的问题,并且我发现无法为定义的虚拟主机禁用 mod_evasive。

以下“解决方法”配置对我的 svn 有用:

更改:/etc/apache2/mods-available/mod-evasive.load

整个文件:

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
< If Module mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 15
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
</IfModule>

更改后,您必须重新启动 Apache:
/etc/init.d/apache2 restart

玩得开心

答案2

/home/mrlanrat/domains/svn.domain.com/usvn/files/authz你的文件是什么样的?

我的看起来像这样:

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

[/]
@everyone = r

[repo1:/]
@repo1users = rw

我们以前遇到过类似的问题,主要是由于 authz 文件配置错误。

答案3

经过一整天的谷歌搜索,我找到了各种可能导致此 403 错误的问题,但没有一个是我的问题。我终于找到了我的问题!

我在 Apache 中启用了 mod_evasive。显然 SVN/WED-DAV 发送命令的速度太快,以至于被阻止了。

那么回到解决方案!禁用 mod_evasive!:)

如果有人知道只为一个虚拟主机禁用它的方法,请告诉我。我仍然希望为其他虚拟主机启用它。

谢谢!

相关内容