Устанавливаем SVN-сервер

Материал из rrv-wiki
Перейти к навигации Перейти к поиску

Первая версия была взята здесь, это была основа для изменений и дополнений.

Установка

Устанавливаем 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-сервера закончена.