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

Материал из Энциклопедия хостинга
Перейти к: навигация, поиск

В статье рассматривается быстрая установка SVN (Subversion) с доступом по протоколу http(s) в минимальной конфигурации на такие системы, как CentOS, Debian и Ubuntu.

В качестве серверов использовались VDS на 64-битных шаблонах ОС без ISPmanager и любого другого ПО: CentOS, Debian, Ubuntu.

Для работы можете использовать Windows 7 с установленным клиентом TortoiseSVN, Ubuntu с установленным клиентом RabbitVCS. Также для доступа к файлам может использоваться веб-браузер.

Хранятся версии с использованием dav_fs (Native filesystem (FSFS)), тем самым не потребуется пересборка Apache и упростится процесс установки.

Итак, процесс установки:

Содержание

CentOS-6-amd64

Установка apache

yum install httpd

Сделаем, чтоб он запускался при загрузке системы

chkconfig httpd on

Запускаем

service httpd status

Установка и настройка SVN

  • Установка:
yum install mod_dav_svn subversion
  • Создадим директорию, которая и будет репозиторием
mkdir -p /svn/repo && cd /svn/repo

В ней создадим репозитарий myrepo и выставим правильного владельца его директории

svnadmin create myrepo
chown -R apache.apache myrepo
  • Настраиваем веб-сервер для работы с svn. В файле /etc/httpd/conf.d/subversion.conf должно содержаться следующее:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /myrepo>
DAV svn
SVNPath /svn/repo/myrepo
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth
Require valid-user
#   </LimitExcept>
</Location>

Создаем файл web-авторизации и задаем пользователя и пароль:

htpasswd -mbc /etc/svn-auth svn-adm ВАШ_ПАРОЛЬ_ТУТ
  • Проверяем - IP-адрес_сервера/myrepo набираем в браузере

Если не можете подключиться из браузера по адресу IP-адрес_сервера/myrepo, то проверьте iptables

iptables -nL

возможно увидите правила:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

сбросьте их:

iptables -F
  • Полезная информация и примеры для работы с SVN в CentOS здесь

Debian/Ubuntu

1. Устанавливаем на чистый сервер apache

apt-get install apache2

2. Устанавливаем subversion и необходимые библиотеки

apt-get install libsvn1 subversion apache2-utils libapache2-svn

Проверим наличие модуля authz_svn:

apachectl -M | grep 'authz_svn'

Если его нет, то включим и перезапустим apache:

a2enmod authz_svn
/etc/init.d/apache2 restart

3. Указываем локацию репозитория:

svnadmin create /var/lib/svn

3. В файле /etc/apache2/mods-enabled/dav_svn.conf убираем знак # с начала следующих строк:

<Location /svn>
...
  DAV svn
...
  SVNPath /var/lib/svn
...
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd

Здесь ещё добавим строку:

  Require valid-user
...
</Location>

4. Задаем пользователя и пароль для авторизации:

htpasswd -mbc /etc/apache2/dav_svn.passwd svn-user ВАШ_ПАРОЛЬ

5. Перезапускаем apache:

/etc/init.d/apache2 restart

Проверяем, набрав в браузере http://IP-адрес_сервера/svn/. Если все сделано корректно, то увидите:

svn - Revision 0: /
Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты

Заметили ошибку?

Выделите ее и нажмите CTRL+ENTER