Установка SVN (Subversion) c доступом по http
В статье рассматривается быстрая установка SVN (Subversion) с доступом по протоколу http(s) в минимальной конфигурации на систему FreeBSD.
В качестве сервера используется VDS на темплейте с Apache2. (необходимо использовать Apache не ниже версии 2.2).
В качестве клиента используется Windows XP с установленным клиентом TortoiseSVN, также для доступа к файлам может использоваться веб-браузер.
Хранятся версии с использованием dav_fs (Native filesystem (FSFS)), тем самым не потребуется пересборка Apache и упростится процесс установки.
Итак, привожу описание процесса установки:
Устанавливаем Subversion:
cd /usr/ports/devel/subversion make install clean
Отмечаем опции на стадии configure:
[X] MOD_DAV_SVN mod_dav_svn module for Apache 2.X [X] NEON WebDAV/Delta-V repository access module
Остальные галочки следует отключить
После успешной сборки и установки следует отредактировать конфигурацию apache:
vi /usr/local/etc/apache22/httpd.conf
Найдите в нем mod_dav_fs.so, раскомментируйте и пропишите ниже остальных модулей, чтобы получилось вот так:
LoadModule dav_module libexec/apache22/mod_dav.so LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so LoadModule dav_fs_module libexec/apache22/mod_dav_fs.so
Далее пропишите в конфигурацию Location для работы модулей:
<Location /svn> DAV svn SVNParentPath /home/svn # SVNIndexXSLT "/svnindex.xsl" AuthType Basic AuthName "Subversion repository" AuthUserFile /usr/local/etc/svn.passwd Require valid-user </Location>
На этом редактирование конфигурации apache закончено, создайте репозиторий, назовем его project:
mkdir /home/svn rehash svnadmin create /home/svn/project chown -R www:www /home/svn
Добавьте пользователя для ограничения доступа к серверу SVN:
htpasswd -b -c /usr/local/etc/svn.passwd svn password Adding password for user svn chown www:www /usr/local/etc/svn.passwd chmod 600 /usr/local/etc/svn.passwd
где добавляемый пользователь svn и пароль password
Перезапустите apache:
apachectl restart
И проверьте что все работает открыв URL в браузере:
http://ip-адрес.вашего.сервера/svn/project/
В принципе можно уже работать. Запустите TortoiseSVN, подключитесь по вышеупомянутому адресу, все должно пройти безо всяких проблем.
Если нужно сделать более красивое отображение через web, то тогда скопируйте файлы:
cp /usr/local/share/subversion/xslt/svnindex.* /usr/local/www/apache22/data/
И уберите комментарий со строки:
# SVNIndexXSLT "/svnindex.xsl"
Если у вас используется какой-либо домен, например svn.example.com, то тогда следует скопировать xsl-файлы в папку этого www-домена:
cp /usr/local/share/subversion/xslt/svnindex.* /home/test/data/www/svn.example.com/
Также следует учитывать, что при заходе на сервер по IP-адресу (т.е. http://ip-адрес.вашего.сервера/svn/project/), файлы .xslt всегда будут искаться в первом виртуальном хосте в конфигурации apache.
На этом первоначальная установка настройка SVN-сервера закончена.