使用 Websvn 配置 Apache Subversion

Posted

技术标签:

【中文标题】使用 Websvn 配置 Apache Subversion【英文标题】:Configuring Apache Subversion with Websvn 【发布时间】:2010-10-01 12:06:36 【问题描述】:

平台:

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

【问题讨论】:

你的 apache 错误日志是怎么说的?通常这比通用的用户代理 500 更有帮助:) 我已经用 error.log 更新了我的答案。谢谢。 【参考方案1】:

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

至少如果你像我一样在“/”中有SVNRoot。

【讨论】:

【参考方案2】:

您似乎正试图在同一个位置提供 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

【讨论】:

以上是关于使用 Websvn 配置 Apache Subversion的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 jenkins 以使用 websvn

LDAP 身份验证不适用于 websvn

添加svn二进制位置后Websvn显示空白屏幕

为 Maven SCM URL 使用 WebSVN 链接

WebSVN - 存储库中路径的身份验证

WebSVN 有啥好的替代品吗? [关闭]