使用Websvn配置Apache Subversion

时间:2010-10-01 12:06:37

标签: svn apache websvn

平台:

CentOS release 5.5 (Final)
SVN, version 1.4.2 (r22196)
Apache httpd.i386 2.2.3-43.el5.centos.3

我有一个名为subversion.conf的文件,/etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

# Virtual path for websvn
Alias /wsvn /var/www/websvn/
<Directory /var/www/websvn>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

# Subversion configuration
<location /wsvn>
    DAV svn
    SVNListParentPath on
    SVNParentPath /var/www/wsvn
    AuthzSVNAccessFile /etc/svn-acl-conf
    AuthType Basic
    AuthUserFile /etc/svn-auth-conf
    Require valid-user
</Location>

在我的svn-acl-conf中,我有以下内容:

[/]
joeblogs = rw

在我的svn-auth-conf中,我有以下内容,并使用#htpasswd -cm svn-auth-conf joeblogs

joeblogs:$apr1$ellT3...$2spAjOJ2W1kFDieAoJJeg

在我的目录/ var / www /我有这个:

4 drwxr-xr-x 4 apache apache 4096 Oct  1 20:56 wsvn

它wsvn

4 drwxr-xr-x 7 apache apache 4096 Oct  1 20:56 APP
4 drwxr-xr-x 7 apache apache 4096 Oct  1 20:56 DEV

问题是当我尝试使用这个导入项目时:

svn import temp http://x.x.x.x/wsvn/DEV/dev-proj -m"Initial import"
svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for 'http://x.x.x.x/wsvn/DEV/dev-proj'

当我尝试在Firefox http://x.x.x.x/wsvn中浏览时,我得到以下内容

The server encountered an internal error or misconfiguration and was unable to complete your request.

但是,如果我注释掉以下内容,我可以毫无问题地浏览到该网站,我可以看到这些存储库:

<location /wsvn>
#    DAV svn
#    SVNListParentPath on
#    SVNParentPath /var/www/wsvn
#    AuthzSVNAccessFile /etc/svn-acl-conf
#    AuthType Basic
#    AuthUserFile /etc/svn-auth-conf
#    Require valid-user
</Location>

如何解决此问题?

错误日志

[Sat Oct 02 01:58:17 2010] [error] [client x.x.x.x] need AuthName: /wsvn/listing.php, referer: http://x.x.x.x/wsvn/listing.php?repname=DEV
[Sat Oct 02 01:58:28 2010] [error] [client x.x.x.x] need AuthName: /wsvn/DEV/dev-proj
[Sat Oct 02 02:00:59 2010] [notice] caught SIGTERM, shutting down
[Sat Oct 02 02:00:59 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sat Oct 02 02:00:59 2010] [notice] Digest: generating secret for digest authentication ...
[Sat Oct 02 02:00:59 2010] [notice] Digest: done
[Sat Oct 02 02:00:59 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Sat Oct 02 02:01:03 2010] [error] [client x.x.x.x] need AuthName: /wsvn/DEV/dev-proj
[Sat Oct 02 02:02:28 2010] [notice] caught SIGTERM, shutting down
[Sat Oct 02 02:02:28 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sat Oct 02 02:02:28 2010] [notice] Digest: generating secret for digest authentication ...
[Sat Oct 02 02:02:28 2010] [notice] Digest: done
[Sat Oct 02 02:02:28 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Sat Oct 02 02:02:31 2010] [error] [client x.x.x.x] need AuthName: /wsvn/listing.php, referer: http://x.x.x.x/wsvn/listing.php?repname=DEV
[Sat Oct 02 02:02:34 2010] [error] [client x.x.x.x] need AuthName: /wsvn/listing.php, referer: http://x.x.x.x/wsvn/listing.php?repname=DEV
[Sat Oct 02 02:03:03 2010] [notice] caught SIGTERM, shutting down
[Sat Oct 02 02:03:03 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sat Oct 02 02:03:03 2010] [notice] Digest: generating secret for digest authentication ...
[Sat Oct 02 02:03:03 2010] [notice] Digest: done
[Sat Oct 02 02:03:04 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Sat Oct 02 02:03:06 2010] [error] [client x.x.x.x] Error running this command: svn --non-interactive --config-dir /tmp log --xml --verbose -r HEAD:1 &apos;file:////var/www/wsvn/WEB/@HEAD&apos; --limit 2, referer: http://x.x.x.x/wsvn/listing.php?repname=DEV
[Sat Oct 02 02:03:06 2010] [error] [client x.x.x.x] svn: No such revision 1, referer: http://x.x.x.x/wsvn/listing.php?repname=DEV

2 个答案:

答案 0 :(得分:1)

这是SVN中的一个错误。如果您有authz文件,则无法访问root并查看存储库列表。

至少如果你有“/”中的SVNRoot就是这样。

答案 1 :(得分:0)

好像你正试图在同一个地方提供服务svn和websvn。这就是为什么当你注释掉其中一个指令时,你会得到一些结果。

将Subversion配置中的路径更改为与您用于websvn的路径不同的内容,因此:

Alias /websvn /var/www/websvn/
<Directory /var/www/websvn>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

# Subversion configuration 
<location /svn>
    DAV svn
    SVNListParentPath on
    SVNParentPath /var/www/svnrepopath
    AuthzSVNAccessFile /etc/svn-acl-conf
    AuthType Basic
    AuthUserFile /etc/svn-auth-conf
    Require valid-user
</Location>

http://www.duchnik.com/tutorials/vc/installing-and-configuring-svn-on-centos