ApacheSubversionRecipe » History » Revision 4
Revision 3 (admin, 2006-03-07 16:06) → Revision 4/16 (admin, 2006-03-07 16:26)
== 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: * [http://httpd.apache.org/ Apache] (running at port 8080) * [http://subversion.tigris.org/ Subversion] (including [http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.serverconfig.httpd mod_dav_svn]) * [http://www.lighttpd.net/ Lighttpd] 1.4.11 * An daemon system account with user and group id `svn` === Create test repository === Create the subversion repository, and set its owner and group to `svn`: {{{ 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: {{{ 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 </Location> </VirtualHost> }}} Create a users database for the `example` user: {{{ htpasswd -cm /var/svn/projects.example.com/test/conf/users example }}} For more information, see the [http://svnbook.red-bean.com/ Version Control with Subversion] book chapter [http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.serverconfig.httpd httpd, the Apache HTTP server]. === Setup Lighttpd === Setup Lighttpd to use [http://lighttpd.net/documentation/proxy.html 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. Checkout the test repository, and commit some stuff: {{{ 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 [http://forum.lighttpd.net/forum/1 Forum]!