本文档旨在描述 Subversion 1.2。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅适合您 Subversion 版本的书籍版本。

第 6 章 服务器配置

目录

概述
网络模型
请求和响应
客户端凭据缓存
svnserve,一个自定义服务器
调用服务器
内置身份验证和授权
创建 'users' 文件和领域
设置访问控制
SSH 身份验证和授权
SSH 配置技巧
初始设置
控制调用的命令
httpd,Apache HTTP 服务器
先决条件
基本 Apache 配置
身份验证选项
基本 HTTP 身份验证
SSL 证书管理
授权选项
全局访问控制
按目录访问控制
禁用基于路径的检查
其他好处
仓库浏览
其他功能
支持多种仓库访问方法

Subversion 仓库可以使用 file:/// 方法同时被运行在与仓库所在的同一台机器上的客户端访问。但典型的 Subversion 设置涉及一台服务器机器,从办公室中的所有客户端计算机(也许是世界各地的所有计算机)进行访问。

本节描述如何使您的 Subversion 仓库在主机的外部公开,以便远程客户端使用。我们将介绍 Subversion 目前可用的服务器机制,讨论每个机制的配置和使用。阅读完本节后,您应该能够确定哪种网络设置适合您的需求,并了解如何在您的主机上启用这样的设置。

概述

Subversion 采用抽象网络层设计。这意味着仓库可以通过任何类型的服务器进程以编程方式访问,客户端的“仓库访问”API 允许程序员编写插件来使用相关的网络协议。理论上,Subversion 可以使用无限数量的网络实现。实际上,在撰写本文时,只有两个服务器。

Apache 是一个非常受欢迎的 Web 服务器;使用 mod_dav_svn 模块,Apache 可以访问仓库并通过 WebDAV/DeltaV 协议将其提供给客户端,WebDAV/DeltaV 协议是 HTTP 的扩展。另一个是 svnserve:一个小型独立的服务器程序,它与客户端使用自定义协议进行通信。表 6-1 比较了这两个服务器。

请注意,Subversion 作为一个开源项目,不正式认可任何服务器为“主要”或“官方”。这两种网络实现都没有被视为二等公民;每个服务器都有优点和缺点。实际上,不同的服务器可以并行运行,每个服务器以自己的方式访问您的仓库,并且每个服务器都不会妨碍另一个(参见 名为“支持多种仓库访问方法”的部分)。表 6.1,“网络服务器比较” 简要概述和比较了两个可用的 Subversion 服务器——作为管理员,您可以选择最适合您和您的用户的选项。

表 6.1 网络服务器比较

功能Apache + mod_dav_svnsvnserve
身份验证选项HTTP(S) 基本身份验证、X.509 证书、LDAP、NTLM 或任何其他可用于 Apache httpd 的机制CRAM-MD5 或 SSH
用户帐户选项私有的 'users' 文件私有的 'users' 文件或现有的系统 (SSH) 帐户
授权选项全局读/写访问权限或按目录读/写控制全局读/写访问权限或使用预提交钩子进行按目录写(但不能读)控制
加密通过可选的 SSL通过可选的 SSH 隧道
互操作性可以部分地被其他 WebDAV 客户端使用不可互操作
Web 查看有限的内置支持或通过第三方工具(如 ViewVC)通过第三方工具(如 ViewVC)
速度稍微慢一些稍微快一些
初始设置有点复杂相当简单
TortoiseSVN 官方中文版 1.14.7 发布