httpd, the Apache HTTP server
The Apache HTTP Server is a “heavy duty”
network server that Subversion can leverage. Via a custom
module,
httpd
makes Subversion repositories
available to clients via the WebDAV/DeltaV protocol, which is an
extension to HTTP 1.1 (see
https://www.webdav.org/
for more information). This protocol takes the ubiquitous HTTP
protocol that is the core of the World Wide Web, and adds
writing—specifically, versioned
writing—capabilities. The result is a standardized,
robust system that is conveniently packaged as part of the
Apache 2.0 software, is supported by numerous operating systems
and third-party products, and doesn't require network
administrators to open up yet another custom port.
[25]
While an Apache-Subversion server has more features than
svnserve
, it's also a bit more difficult
to set up. With flexibility often comes more complexity.
Much of the following discussion includes references to
Apache configuration directives. While some examples are given
of the use of these directives, describing them in full is
outside the scope of this chapter. The Apache team maintains
excellent documentation, publicly available on their website at
https://httpd.apache.org. For example, a general
reference for the configuration directives is located at
https://httpd.apache.org/docs-2.0/mod/directives.html.
Also, as you make changes to your Apache setup, it is likely
that somewhere along the way a mistake will be made. If you are
not already familiar with Apache's logging subsystem, you should
become aware of it. In your httpd.conf
file are directives that specify the on-disk locations of the
access and error logs generated by Apache (the
CustomLog
and ErrorLog
directives, respectively). Subversion's mod_dav_svn uses
Apache's error logging interface as well. You can always browse
the contents of those files for information that might reveal
the source of a problem that is not clearly noticeable
otherwise.
To network your repository over HTTP, you basically need
four components, available in two packages. You'll need
Apache
httpd
2.0, the
mod_dav
DAV module that comes with it,
Subversion, and the
mod_dav_svn
filesystem provider module distributed with Subversion.
Once you have all of those components, the process of
networking your repository is as simple as:
-
getting httpd 2.0 up and running with the mod_dav
module,
-
installing the mod_dav_svn plugin to mod_dav, which
uses Subversion's libraries to access the repository,
and
-
configuring your httpd.conf
file to export (or expose) the repository.
You can accomplish the first two items either by
compiling
httpd
and Subversion from
source code, or by installing pre-built binary packages of
them on your system. For the most up-to-date information on
how to compile Subversion for use with the Apache HTTP Server,
as well as how to compile and configure Apache itself for
this purpose, see the INSTALL
file in
the top level of the Subversion source code tree.
[an error occurred while processing this directive]