Configuring Apache Subversion with Websvn
Question
Platform:
CentOS release 5.5 (Final)
SVN, version 1.4.2 (r22196)
Apache httpd.i386 2.2.3-43.el5.centos.3
I have a file called 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>
In my svn-acl-conf I have the following:
[/]
joeblogs = rw
In my svn-auth-conf I have the following, and used # htpasswd -cm svn-auth-conf joeblogs
:
joeblogs:$apr1$ellT3...$2spAjOJ2W1kFDieAoJJeg
In my directory /var/www/ I have have this:
4 drwxr-xr-x 4 apache apache 4096 Oct 1 20:56 wsvn
And it 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
The problem is when I try and import a project using this:
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'
And when I try and browse in Firefox http://x.x.x.x/wsvn I get the following
The server encountered an internal error or misconfiguration and was unable to complete your request.
However, if I comment out the following I can browse to that site without any problem, and I can see the repositories:
<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>
How can I fix this problem?
ERROR LOG
[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 'file:////var/www/wsvn/WEB/@HEAD' --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
Solution
It is a bug in SVN. You can not access root and see the list of repositories if you have an authz file.
It is true at least if you have SVNRoot in "/" as I have.
OTHER TIPS
It seems like you're trying to serve svn and websvn out of the same location. That's why, when you comment out one of the directives, you get some results.
Change the path in your Subversion configuration to be something different than what you're using for websvn, so:
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