SVN & Apache via WebDAV

Posted on

SVN & Apache via WebDAV – Managing your servers can streamline the performance of your team by allowing them to complete complex tasks faster. Plus, it can enable them to detect problems early on before they get out of hand and compromise your business. As a result, the risk of experiencing operational setbacks is drastically lower.

But the only way to make the most of your server management is to perform it correctly. And to help you do so, this article will share nine tips on improving your server management and fix some problem about apache-2.2, svn, webdav, , .

I’m trying to configure Apache to run with SVN. This works pretty well except the authentication.

# /etc/init.d/apache2 restart
* Restarting web server apache2
apache2: Syntax error on line 185 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/authz_svn.load: Cannot load /usr/lib/apache2/modules/mod_authz_svn.so into server: /usr/lib/apache2/modules/mod_authz_svn.so: undefined symbol: dav_svn_split_uri
[fail]

Well I checked back the config-file he’s complaining about:

root@uxserver:/etc/apache2# cat mods-enabled/authz_svn.load
LoadModule authz_svn /usr/lib/apache2/modules/mod_authz_svn.so

I needed to build that file myself as it wasn’t available after installing libapache2-svn package.
The machine’s running Ubuntu and SVN itself works. Here’s my…

root@uxserver:/etc/apache2# ls mods-enabled/
alias.conf          authz_groupfile.load  autoindex.load  dav.load       deflate.load mime.conf         proxy_http.load  ssl.conf
alias.load          authz_host.load       cgid.conf       dav_lock.load  dir.conf      mime.load         proxy.load       ssl.load
auth_basic.load     authz_svn.load        cgid.load       dav_svn.conf   dir.load      negotiation.conf  rewrite.load     status.conf
authn_file.load     authz_user.load       dav_fs.conf     dav_svn.load   env.load      negotiation.load  setenvif.conf    status.load
authz_default.load  autoindex.conf        dav_fs.load     deflate.conf   headers.load  proxy.conf        setenvif.load

When googling around I found that the order in which the modules are loaded could be wrong. But I cannot really influence this one. I even tried to rename the file authz_svn.load to zauthz_svn.load in order to have it loaded at last, which didn’t work either.

Any idea? Or is there any other way to have apache use the same authentication like svnserve, because I have already an svnserve running correctly. And I would like to attach apache to this same repos.

Little Note: The repos is accessible only through SSL, forced by

<Location /svn>
    DAV svn
    SVNPath /media/data/svn/
    AuthzSVNAccessFile /media/data/svn/conf/authz
</Location>

in the file for vhosts.

Thanks in advance and best regards

Solution :

If you are running Ubuntu, it should work. I installed the libapache2-svn a long time ago and it installed mod_authz_svn.so to my system.

Here is my dav_svn.load

root@rhea:~# cat /etc/apache2/mods-enabled/dav_svn.load
# Depends: dav
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

Want me to attach my mod_authz_svn.so somehow so you can see if that will work for you?
Perhaps you just need to enable mod_dav_svn.so?

Use the a2enmod modulename command on Ubuntu to enable apache modules in the future. It will take care of everything, including the *.load files. No need to hand edit those at all.

Leave a Reply

Your email address will not be published. Required fields are marked *