Глава 6. Настройка сервера

Содержание

Обзор
Сетевая модель
Запросы и отклики
Кеширование клиентской идентификационной информации
svnserve, a custom server
Invoking the Server
Built-in authentication and authorization
Create a 'users' file and realm
Set access controls
SSH authentication and authorization
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
Other Features
Supporting Multiple Repository Access Methods

Одновременный доступ к хранилищу Subversion клиентами, запущенными на том же компьютере, где расположено и хранилище, возможен при использовании метода file:///. Но, обычно, сервер Subversion устанавливается на отдельный компьютер, к которому имеют доступ клиенты с компьютеров всего офиса — или, возможно, всего мира.

Этот раздел расскажет, как предоставить доступ к хранилищу Subversion удаленным клиентам. Мы опишем доступные на сегодняшний день механизмы серверов Subversion, а так же обсудим вопросы конфигурации и использования каждого из них. После прочтения этого раздела вы сможете решить, какой тип сервера подходит вам, как его установить и настроить на вашем комптьютере.

Обзор

Subversion был разработан с использованием абстрактного сетевого уровня. Это означает, что на программном уровне для доступа к хранилищу может быть использован любой тип сервера, а «клиентский API для доступа к хранилищу» дает программистам возможность создавать плагины, которые будут взаимодействовать с соответствующим сетевым протоколом. Теоретически, Subversion может использовать неограниченное количество сетевых исполнений. Практически же, на данный момент есть только два сервера.

Apache — наиболее популярный web-сервер; при использовании модуля mod_dav_svn Apache получает возможность доступа к хранилищу, а так же делает его доступным для клиентов, используя протокол WebDAV/DeltaV, который является расширением HTTP. В другом углу ринга — svnserve — небольшой, самостоятельный сервер, использующий для связи с клиентами собственный протокол. В таблице 6-1 дано сравнение этих двух серверов.

Обратите внимание, что Subversion, как проект с открытым исходным кодом, ни одному из серверов не дает статуса «основного» или «официального». Ни одно из сетевых решений не является "третьесортным"; у каждого сервера есть свои достоинства и недостатки. Фактически, можно запустить параллельно разные сервера, каждый из которых будет взаимодействовать с хранилищем по-своему, и ни один из них не будет "первым" или "главным" (смотрите «Supporting Multiple Repository Access Methods»). Таблица 6.1, «Сравнение серверов» представляет краткий обзор и сравнение двух доступных Subversion-серверов — как для администратора; это поможет вам выбрать сервер, наиболее подходящий вам и вашим пользователям.

Таблица 6.1. Сравнение серверов

ВозможностьApache + mod_dav_svnsvnserve
Настройки установления личностистандартное установление личности средствами HTTP(S), сертификаты X.509, LDAP, NTLM, а также другие механизмы, доступные для использования в ApacheCRAM-MD5 или SSH
Настройки пользовательских учетных записейвнутренний файл 'users'внутренний файл 'users' или использование существующих системных (SSH) учетных записей
Настройки прав доступаобщий доступ для чтения/записи, или по-каталоговый доступ для чтения/записиобщий доступ для чтения/записи, или по-каталоговый доступ для записи (но не для чтения), используя сценарий, вызываемый перед фиксацией
Шифрованиечерез SSL (опционально)через SSH-туннель (опционально)
Interoperabilityчастично, используя другие WevDAV-клиентыне поддерживается.
Просмотр через webвстроенная ограниченная поддержка, или используя программы сторонних разработчиков, такие, как ViewCVSиспользуя программы сторонних разработчиков, такие, как ViewCVS
Скоростьболее низкаяболее высокая
Начальная установканесколько сложнаядостаточно простая