Установка SVN (Subversion) c доступом по http

Материал из wiki.p3.ru

В статье рассматривается быстрая установка 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-сервера закончена.