ApacheSubversionRecipe » History » Revision 13
« Previous |
Revision 13/16
(diff)
| Next »
Anonymous, 2008-09-09 17:45
With lighttpd 1.4.18, and probably several other versions, you might not be able to commit to the repository! You'll get errors like:
{{{
svn: Commit failed (details follow):
svn: OPTIONS request failed on '/svn/a/b/c'
svn: OPTIONS of '/svn/a/b/c': 200 OK (https://dev.yoursite.com)
}}}
See ticket #631 for more information.
Apache+Subversion RecipeThis 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: {{{#!ShellExample
- groupadd svn
- useradd svn
}}}
- [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
- A daemon system account with user and group id `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 [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].
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 [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.
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 [http://forum.lighttpd.net/forum/1 Forum]!
Updated by Anonymous about 16 years ago · 13 revisions