Important Warning¶
This will not work with current versions of svn until https://github.com/lighttpd/lighttpd1.4/pull/38 is applied (currently targetting lighttpd 1.4.40)
See ticket #631 for more information.
Apache+Subversion Recipe¶
This recipe shows how to setup an example subversion repository using Apache 2.2, mod_dav_svn, and lighttpd 1.4.11.
We will create a subversion repository hosted at the example address: `http://projects.example.com/svn/test/`.
Before you continue, make sure you have installed:
- Apache (running at port 8080)
- Subversion (including mod_dav_svn)
- Lighttpd 1.4.11
- A daemon system account with user and group id
svn
#!ShellExample # groupadd svn # useradd svn
Create test repository¶
Create the subversion repository, and set its owner and group to svn
:
#!ShellExample # mkdir -pm700 /var/svn/projects.example.com # svnadmin create /var/svn/projects.example.com/test # chown -R svn:svn /var/svn/projects.example.com
NB: This implies that you are running Apache from that user:group too.
Setup Apache¶
Create the directory for the projects.example.com
domain public files:
#!ShellExample # mkdir -p /var/www/projects.example.com/httpdocs
Setup a virtual host inside httpd.conf
:
<VirtualHost *:8080> ServerName projects.example.com DocumentRoot /var/www/projects.example.com/httpdocs <Location /svn/test> DAV svn SVNPath /var/svn/projects.example.com/test AuthType Basic AuthName "Test Subversion repository" AuthUserFile /var/svn/projects.example.com/test/conf/users Require valid-user Order allow,deny Allow from all </Location> </VirtualHost>
Create a users database for the example
user:
#!ShellExample # htpasswd -cm /var/svn/projects.example.com/test/conf/users example
Change Apache User and Group variables from:
User apache Group apache
to:
User svn Group svn
For more information, see the Version Control with Subversion book chapter httpd, the Apache HTTP server.
Notice: If using SSL with Lighttpd change ServerName to `https://projects.example.com` or some Subversion commands may not work.
Setup Lighttpd¶
Setup Lighttpd to use mod_proxy to proxy requests to Apache at port 8080:
$HTTP["host"] == "projects.example.com" { server.document-root = "/var/www/projects.example.com/httpdocs" proxy.server = ( "/svn/test" => (("host" => "127.0.0.1", "port" => 8080)) ) }
Test the setup¶
Restart Apache and Lighttpd.
Perform initial project import, checkout the test repository, and commit some stuff:
#!ShellExample $ svn import /var/www/projects.example.com/httpdocs file:///var/svn/projects.example.com/test -m "Initial import" $ svn checkout --username example http://projects.example.com/svn/test $ cd test $ svn mkdir testbranches tags trunk $ svn commit
And you should be up and running!
If you have any question, contact us using our Forum!
Updated by gstrauss over 8 years ago · 16 revisions