Статья давно не обновлялась, поэтому информация могла устареть.
В статье рассматривается быстрая установка 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: /