Установка SVN сервер на Fedora/CentOS/RHEL
Что SVN (Subversion)?
Subversion является свободной системой управления версиями с открытым исходным кодом. SubversionAC позволяет управлять файлами и каталогами и изменять их, делать в них различные внесения. Это позволяет восстанавливать старые версии ваших данных, или изучить историю о том, как изменились ваши данные. И в своей статье «Установка SVN сервер на Fedora/CentOS/RHEL» я расскажу как можно установить и настроить SVN сервер, на примере CentOS 6/7.
Установка SVN сервер на Fedora/CentOS/RHEL
Меняем пользователя на root:
su -
или
sudo -i
Установите необходимые пакеты (mod_dav_svn and subversion):
# yum install mod_dav_svn subversion
Отредактируйте или слздайте конфигурационный файл:
# vim /etc/httpd/conf.d/subversion.conf
Вставьте следующий код.
Для CentOS/RHEL 7, а так же Fedora 21/20/19/18
<Location /svn> DAV svn SVNParentPath /var/www/svn # Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "Subversion repositories" AuthUserFile /etc/svn-auth-users Require valid-user </LimitExcept> </Location>
Для CentOS/RHEL 5/6
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /var/www/svn # Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "Subversion repositories" AuthUserFile /etc/svn-auth-users Require valid-user </LimitExcept> </Location>
Загружаемые LoadModule можно вынести в отдельный файл:
# vim /etc/httpd/conf.modules.d/10-subversion.conf
Добавление SVN пользователей.
Используйте команду для создания пользователей для SVN:
1. Пользователь 1
# htpasswd -cm /etc/svn-auth-users SVN_user
1. Пользователь 2
# htpasswd -cm /etc/svn-auth-users SVN_user2
Настройка контроля доступа с Apache и mod_authz_svn, можно прочитать в моей статье:
Настройка контроля доступа с Apache и mod_authz_svn
Создания и конфигрурирования репозитория SVN
Создаем папку для проектов:
# mkdir /var/www/svn && cd /var/www/svn
Создания репозитория:
# svnadmin create my_first_repo
Добавляем права:
# chown -R apache.apache my_first_repo
Если у вас включен SELinux (вы можете проверить это с помощью команды «sestatus». Затем измените правила безопасности SELinux командой chcon:
# chcon -R -t httpd_sys_content_t /var/www/svn/my_first_repo
После позволяем коммиты над HTTP:
# chcon -R -t httpd_sys_rw_content_t /var/www/svn/my_first_repo
Перезапуск Apache.
Для CentOS/RHEL 7 и Fedora 21/20/19/18 выполните:
# systemctl restart httpd.service
Для CentOS/RHEL 5/6 выполните:
# service httpd restart
или
/etc/init.d/httpd restart
Откройте браузер и перейдите на репозиторий:
http://IP_or_HOST/svn/my_first_repo
Вы должны увидеть что-то вроде:
Введите имя пользователя и пароль.
Настройка репозитория
Чтобы отключить анонимный доступ и включить надстройку контроля доступа выполните следующие команды в файле:
# vim my_first_repo/conf/svnserve.conf
и вносим изменения:
Отключение анонимного доступа:
anon-access = none
Включение контроля доступа:
authz-db = authz
Создание trunk, branches и tags структуры под testrepo
Создать «шаблон» каталогов с помощью следующей команды:
# mkdir -p /tmp/svn-structure-template/{trunk,branches,tags}
Затем, импортируем шаблон в репозиторий проекта с помощью команды SVN «import»:
# svn import -m 'Initial import' /tmp/svn-structure-template/ http://192.168.103.131/svn/my_first_repo Authentication realm: <http://192.168.103.131:80> Subversion repositories Password for 'root': Authentication realm: <http://192.168.103.131:80> Subversion repositories Username: SVN_user Password for 'SVN_user': Adding /tmp/svn-structure-template/trunk Adding /tmp/svn-structure-template/branches Adding /tmp/svn-structure-template/tags ----------------------------------------------------------------------- ATTENTION! Your password for authentication realm: <http://192.168.103.131:80> Subversion repositories can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/root/.subversion/servers'. ----------------------------------------------------------------------- Store password unencrypted (yes/no)? no Committed revision 1.
192.168.103.131 — На этом ИП работает апач с SVN. Измените на свой IP или имя хоста/домена.
Открываем браузер, переходим в репозиторий и видим:
Remember also take regular backups. Here is guide howto backup and restore SVN (Subversion) Repositories.
На этом, я завершаю данную тему «Установка subversion на CentOS».