В продолжении темы перехода с Apache, сегодня расскажу о простом запуске Subversion без Apache. Для этого мы используем svnserver. Настройка достаточно проста, и так перейдем к делу!
После установки Subversion, у вас должен появится svnserve, проверить можно так:
svnserve, version 1.6.4 (r38063)
compiled Aug 25 2009, 15:27:23
Если вы только что установили Subversion, то не забудьте выполнить «rehash».
Настройка
Во-первых, теперь надо настройки производить для каждого репозитория свои, ибо у каждого репозитория свой svnserve.conf. Но у меня раньше были общие конфиги для всех реп, и я уже в правах разруливал какие группы имеют права на определенную репу, а какие нет. Поэтому писать одно и тоже для каждой репы мне не хотелось и я решил сделать один файл svnserve.conf, а в остальных репах сделать символическую ссылку на него, тем самым надо будет менять настройки только в одном месте.
/var/svn/repos/ — каталог репозиториев
/var/svn/repos/adw0rd/ — один из репозиториев
/var/svn/repos/example/ — другой репозиторий
/var/svn/repos/adw0rd/conf/svnserve.conf — конфиг конкретного репозитория
Перемещаем конфигурационный файл:
Делаем ссылки:
ln -s /var/svn/svnserve.conf /var/svn/repos/example/conf/svnserve.conf
И отредактируем файл /var/svn/svnserve.conf:
# анонимам доступа нет
anon-access = none
# нужна авторизация для просмотра/записи
auth-access = write
# путь до файла с паролями
password-db = /var/svn/svn-passwd
# путь до файла группы/права
authz-db = /var/svn/svn-authz-access
# realm = My First Repository
Во-вторых, у меня было два файла:
- Файл с аккаунтами (логин/пароль), созданный с помощью htpasswd
- Файл с группами и правами для аккаунтов
Но теперь только можно использовать второй (группы/права), он остался корректен.
А для первого файла поменялся формат, теперь там права хранятся в открытом виде и имеют формат:
sally = sally_secret
adw0rd = adw0rd_password
Отредактируйте /var/svn/svn-passwd и добавьте туда свои аккаунты.
С правами файл у нас расположен в /var/svn/svn-authz-access и имеет вид:
dev1 = adw0rd, vasac
dev2 = sally
[/]
@dev1 = r
@dev2 = r
* =
[adw0rd:/]
@dev1 = rw
* =
[example:/]
@dev1 = rw
@dev2 = rw
* =
Запуск
Отредактируйте файл /usr/local/etc/rc.d/svnserve, и укажите свои параметры если это необходимо. Также можете поменять пользователя/группу от кого будет работать svnserve. Если у вас нет это файла, то можете его взять здесь.
Запускаем сервер:
И не забудьте добавить в /etc/rc.conf


Все на mercurial! :)
Все на Git! :)
нужно еще описать способ прикручивание SALS 128-256bit с шифрованием трафика =)
Ага, я тоже предлагал vasa_c'у :)
Да, надо бы в статью добавить :)
--listen-host=0.0.0.0 нужен т.к. во FreeBsd svnserve начинает слушать по дефолту IP6 а не древний IP4 :-)
-T — использовать threads.
-d — запуск демоном.