Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

After a power failure my debian server rebooted all systems nominal with the exception of an SVN server using HTTP via apache2. I am hosting a few other services on this machine, the only other service interacting with apache is a trac project. All webpages hosted out of /var/www work just fine, and my trac project (not in /var/www) works too. However, I am unable to get at my SVN server restored. My partial sites-enabled/000-default for reference ( < password_file > masked):

<Location /svn/project1>
        DAV svn
        SVNPath /home/svn/project1
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile <password_file>
        Require valid-user
</Location>

The module dav_svn file is being loaded, and the svnserver daemon is running. I can do an svn update and commit locally (which seems to properly verify my password and poll from username@servername where servername is my full proper host/domain and not just localhost). However, from any other computer or when I try to browse the repository via HTTP I receive a "403 Forbidden" error. This matches the only error I can find, in my apache log which says:

(13)Permission denied: access to svn/project1

So this usually points to a file system permissions issue, I have no firewall or anything iptables related happening on this machine. My original configuration had the 'svn' group be a member of www-data (my apache user/group), and I have triple-checked read/write permissions on the svn project directory, and the svn root (in this case, /home/svn). I have tried converting permissions and ownership to www-data, back and forth, to no avail. I have verified apache user/group has +x permissions all the way up the path.

I have tried migrating my whole repository to a /var/www/svn folder, and changing my apache configuration respectively, to no avail. I've tried putting test index.html pages into my repository folder and seeing if plain apache (without DAV) can get inside and display them, and it works - using both svn and www-data ownership/group settings.

Are there further debugging steps for DAV svn that I might be able to try? Or any other recommendations as to why I cannot remotely access my SVN server from HTTP? Thanks for your time.

share|improve this question
    
Creating a brand new repository from scratch produced the same result. I even tried restarting like this guy said, with no impact. –  Matt Apr 6 '11 at 17:55
    
I've now also tried removing all of my virtualhost definitions, and stripping everything being hosted out to just try the <Location /svn/project1> and it still doesn't work. I've reinstalled apache, libapache2-svn, and still have a permissions issue so now I am fairly convinced the problem is not in apache. –  Matt Apr 6 '11 at 18:58
add comment

3 Answers

You should be using HTTPS for SVN. Don't want to be sending proprietary source code over plaintext.

The problem likely relates to a statement similar to this:

order allow,deny
deny from all

Which restricts access to most files on the web server at the top level of the httpd.conf.

You should add this to the Location node to override this:

order allow,deny
allow from all

Hope that helps... Best, -Henry

share|improve this answer
    
His repository might be open-source, so https may not matter. –  chrishiestand Apr 6 '11 at 0:50
    
Thanks for the input. The server does normally use HTTPS - but that wasn't working either after the reset (just the SVN part). I stripped the SVN out of HTTPS and am trying everything down at the most basic level and figure once I can get DAV svn working over HTTP, it will be cake to go back to HTTPS. Additionally, I had already tried changing around my mod_access directives, no impact. They are currently set to order allow, deny \n allow from all (no change from before) so I don't think that's the issue. –  Matt Apr 6 '11 at 1:07
    
I feel it also pertinent to mention that the server is currently on a LAN with no external access until this is resolved and HTTPS restored, that is an important concern. –  Matt Apr 6 '11 at 17:57
add comment

Check your filesystem permissions too. Are you sure the web user (maybe www-data) can access the svn repository folders?

Are you sure that http auth is working? If you use the same AuthUserFile on a non-svn directory, does it work?

share|improve this answer
    
Thanks for the input. I've tried revoking and putting back access for www-data with no effect. But perhaps there is an issue with auth, this is a good thing to test, I'll play around with trying the AuthUserFile on other sites in the virtualhost and see if everything is peachy and let you know! –  Matt Apr 6 '11 at 1:16
    
Well I played around with Auth settings but that did not impact anything. The site is also hosting a trac project and that uses the same Auth-type and password file and is working splendidly. –  Matt Apr 6 '11 at 17:54
add comment
up vote 0 down vote accepted

Well, silly answer. /var/www did not have +x permissions for group www-data; somehow this did not effect any of the other hosted sites or even the dummy index.html page within that directory. And even though the SVN repositories are not hosted anywhere near that folder, because I had my DocumentRoot /var/www this likely caused the DAV svn system to fail. Thanks for the help everyone.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.