本手册是为描述 Subversion 1.1 而编写的。如果您正在运行更新版本的 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 作为开源项目,并没有正式认可任何服务器为“主要”或“官方”。两种网络实现都不被视为二等公民;每个服务器都有其优缺点。事实上,不同的服务器可以并行运行,每个服务器以自己的方式访问您的资源库,并且彼此之间不会互相干扰(参见 名为“支持多种资源库访问方法”的部分)。以下是两个可用的 Subversion 服务器的简要概述和比较——作为管理员,您需要选择最适合您和您的用户的服务器。

表 6.1 网络服务器比较

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