Chapter 6. Server Configuration

Table of Contents

Overview
Choosing a Server Configuration
The svnserve Server
svnserve over SSH
The Apache HTTP Server
Recommendations
svnserve, a custom server
Invoking the Server
svnserve as Daemon
svnserve via inetd
svnserve over a Tunnel
svnserve as Windows Service
Built-in authentication and authorization
Create a 'users' file and realm
Set access controls
Tunneling over SSH
SSH configuration tricks
Initial setup
Controlling the invoked command
httpd, the Apache HTTP server
Prerequisites
Basic Apache Configuration
Authentication Options
Basic HTTP Authentication
SSL Certificate Management
Authorization Options
Blanket Access Control
Per-Directory Access Control
Disabling Path-based Checks
Extra Goodies
Repository Browsing
Apache Logging
Other Features
Path-Based Authorization
Supporting Multiple Repository Access Methods

A Subversion repository can be accessed simultaneously by clients running on the same machine on which the repository resides using the file:// method. But the typical Subversion setup involves a single server machine being accessed from clients on computers all over the office—or, perhaps, all over the world.

This chapter describes how to get your Subversion repository exposed outside its host machine for use by remote clients. We will cover Subversion's currently available server mechanisms, discussing the configuration and use of each. After reading this section, you should be able to decide which networking setup is right for your needs, and understand how to enable such a setup on your host computer.