CentOS: установка и настройка Subversion + Apache HTTP Server

Автор: | 04/09/2013

svn_logoПервым делом необходимо запустить Apache, если этого ещё не сделано.

Проверяем:

# chkconfig --list | grep http
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

Включаем запуск Apache при старте системы:

# chkconfig httpd on

Проверяем ещё раз:

# chkconfig --list | grep http
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Проверим текущее состояние сервера:

# service httpd status
httpd is stopped

Запускаем его:

# service httpd start
Starting httpd:                                            [  OK  ]

Проверим порт:

# netstat -apn | grep httpd
tcp        0      0 :::80                       :::*                        LISTEN      5342/httpd

Работает, отлично.

Устанавливаем необходимые пакеты:

# yum install mod_dav_svn subversion
...
Installed:
mod_dav_svn.i686 0:1.6.11-9.el6_4                                                                                     subversion.i686 0:1.6.11-9.el6_4

Dependency Installed:
perl-URI.noarch 0:1.40-2.el6

Создадим каталог, который будет являться SVN-репозиторием:

# cd /var/www/
# mkdir svn && cd svn
# svnadmin create repos
# chown -R apache.apache repos
# ls -l
total 4
drwxr-xr-x. 6 apache apache 4096 Sep  4 10:35 repos

Редактируем файл настроек Apache для работы с 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 /repos>
DAV svn
SVNPath /var/www/svn/repos

#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth-conf
Require valid-user
#   </LimitExcept>
</Location>

Создаём файл для httpd-авторизации, подробнее в статье Apache: ограничение доступа с помощью htaccess и htpasswd.

# htpasswd -cm /etc/svn-auth-conf svnuser
New password:
Re-type new password:

Что бы не использовать авторизацию – закомментируйте строки:

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth-conf
Require valid-user

Проверяем корректность настроек Apache:

# httpd -t
Syntax OK

Перезапускаем сервер:

# apachectl restart

Импортируем каталог с нашими кодами в новый репозиторий:

# svn import /home/setevoy/svn/ file:///var/www/svn/repos/release -m Release_1

Вообще, SVN снабжён довольно подробной справкой:

# svn --help

Можно вызвать подсказку по конкретной опции, например:

# svn import --help

Проверяем как работает:

$ lynx localhost/repos

repos - Revision 1: /

* release/

Powered by Subversion version 1.6.11 (r934486)

Готово.