FreeBSD. Svnserve - запуск Subversion без Apache!
В продолжении темы перехода с Apache, сегодня расскажу о простом запуске Subversion без Apache. Для этого мы используем svnserver. Настройка достаточно проста, и так перейдем к делу!
После установки Subversion, у вас должен появится svnserve, проверить можно так:
# svnserve --version 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 - конфиг конкретного репозитория
Перемещаем конфигурационный файл:
mv /var/svn/repos/adw0rd/conf/svnserve.conf /var/svn/
Делаем ссылки:
ln -s /var/svn/svnserve.conf /var/svn/repos/adw0rd/conf/svnserve.conf ln -s /var/svn/svnserve.conf /var/svn/repos/example/conf/svnserve.conf
И отредактируем файл /var/svn/svnserve.conf:
[general] # анонимам доступа нет anon-access = none # нужна авторизация для просмотра/записи auth-access = write # путь до файла с паролями password-db = /var/svn/svn-passwd # путь до файла группы/права authz-db = /var/svn/svn-authz-access # realm = My First Repository
Во-вторых, у меня было два файла:
- Файл с аккаунтами (логин/пароль), созданный с помощью htpasswd
- Файл с группами и правами для аккаунтов
Но теперь только можно использовать второй (группы/права), он остался корректен.
А для первого файла поменялся формат, теперь там права хранятся в открытом виде и имеют формат:
[users] sally = sally_secret adw0rd = adw0rd_password
Отредактируйте /var/svn/svn-passwd и добавьте туда свои аккаунты.
С правами файл у нас расположен в /var/svn/svn-authz-access и имеет вид:
[groups] dev1 = adw0rd, vasac dev2 = sally [/] @dev1 = r @dev2 = r * = [adw0rd:/] @dev1 = rw * = [example:/] @dev1 = rw @dev2 = rw * =
Запуск
Отредактируйте файл /usr/local/etc/rc.d/svnserve, и укажите свои параметры если это необходимо. Также можете поменять пользователя/группу от кого будет работать svnserve. Если у вас нет это файла, то можете его взять здесь.
Запускаем сервер:
/usr/local/etc/rc.d/svnserve start
И не забудьте добавить в /etc/rc.conf
svnserve_enable="YES"
Комментарии
Все на mercurial! :)
Все на Git! :)
нужно еще описать способ прикручивание SALS 128-256bit с шифрованием трафика =)
Ага, я тоже предлагал vasa_c'у :)
Да, надо бы в статью добавить :)
--listen-host=0.0.0.0 нужен т.к. во FreeBsd svnserve начинает слушать по дефолту IP6 а не древний IP4 :-)
-T — использовать threads.
-d — запуск демоном.
Оставьте свой комментарий