Subversion + Lighttpd + Apache

 
 
yum install  -y subversion mod_dav_svn
 
 
groupadd svn
useradd svn
 
mkdir -pm700 /var/svn/projects
svnadmin create /var/svn/projects/test
chown -R svn:svn /var/svn/projects
 
mkdir -p /var/www/projects.example.com/httpdocs

edit httpd.conf

 
 
 
Listen 8080
 
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

Change the user and Group from apache:apache to svn:svn

 
 
 
User svn
Group svn

Add a virtual host.

 
 
 
<VirtualHost *:8080>
    ServerName projects.example.com
    DocumentRoot /var/www/projects/httpdocs
 
    <Location /svn/test>
        DAV svn
        SVNPath /var/svn/projects/test
        AuthType Basic
        AuthName "Test Subversion repository" 
        AuthUserFile /var/svn/projects/test/conf/users
        Require valid-user
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

create a password for the user svnclient

 
 
 
htpasswd -cm /var/svn/projects/test/conf/users svnclient

edit lighttpd conf file

 
 
 
nano /etc/lighttpd/lighttpd.conf
</code
 
add in mod_proxy
<code lang="bash">
 
 
mod_proxy

add in a redirect for svn requests

 
 
 
$HTTP["host"] == "svn.projects.com" {
    server.document-root = "/var/www/projects/httpdocs" 
    proxy.server = (
        "/svn/test" => (("host" => "127.0.0.1", "port" => 8080))
    )
}

restart apache and lighttpd

test the svn client

 
 
 
svn import /var/www/projects/httpdocs file:///var/svn/projects/test -m "Initial import" 
svn checkout --username svnclient http://projects.yoursite.com/svn/test
cd test
svn mkdir testbranches tags trunk
svn commit

to add a new repository to the SVN

 
 
 
svnadmin create /var/svn/projects/newdir
chown -R svn:svn /var/svn/projects

Then add a new location in the virtual host file

 
 
 
    <Location /svn/test>
        DAV svn
        SVNPath /var/svn/projects/newdir
        AuthType Basic
        AuthName "Test Subversion repository" 
        AuthUserFile /var/svn/projects/test/conf/users
        Require valid-user
        Order allow,deny
        Allow from all
    </Location>

Comments are closed.