Свой SVN сервер. Установка subversion на CentOS | DAndreev.com

Свой SVN сервер. Установка subversion на CentOS

CentOSSVN

Система контроля версий Subversion крайне полезная вещь. Особенно, при совместной разработке проектов с несколькими участниками. Только трудной найти хороший бесплатный сервер SVN, потому лучше создать свой.

Установка subversion и WEB_DAV_SVN

Устанавливаем модуль Apache для доступа к репозиторию,
а также модуль шифрования соединения SSL.
Затем установим сам SVN сервер subversion.
Если у вас CentOS 5.4 или 5.5, а Yum не установлен(на виртуальных среверах такое часто бывает),
можете установить его по инструкции здесь.

# yum install mod_dav_svn mod_ssl
# yum install subversion

Создание репозитория

Создадим репозиторий project в папке /var/www/svn

# mkdir /var/www/svn
# svnadmin create /var/www/svn/project

Всё репозиторий абсолютно чистый готов к работе, теперь обеспечим доступ к нему по сети.

Настройка доступа через Apache SSL

Для начала отредактируем файл конфигурации SVN

# vi /etc/httpd/conf.d/subversion.conf

Нужно в конце доавить следующийе правила

<location /svn >
   DAV svn					  # запросы по данному пути будут направляться к SVN серверу
   SVNParentPath /var/www/svn # путь до репозитория
   SVNListParentPath on		  # формировать список репозиториев и файлов в них при просмотре через браузер

   # Limit write permission to list of valid users.
   # <limitexcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      SSLRequireSSL			  # необходимо шифрованное соединение по протоколу https

      AuthType Basic		  # тип авторизации - базовая
      AuthName &amp;amp;amp;amp;quot;Authorization Realm&amp;amp;amp;amp;quot;
      AuthUserFile /var/www/svn/conf/htpasswd # файл с пользователями и паролями
      AuthzSVNAccessFile /var/www/svn/conf/svn-access # файл доступа к репозиториям
      Require valid-user					  # авторизация обязательна
   # </limitexcept>
</location>

Всё конфигурация апача готова, теперь можно его перезапустить

# /etc/init.d/httpd restart

Теперь необходимо указать пользователей, которые будут иметь доступ к репозиториям и права, какие они будут иметь.

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

# htpasswd -c /var/www/svn/conf/htpasswd test
New password:
Re-type new password:
Adding password for user test

После можно добавлять туда пользователей уже без ключа -c

# htpasswd /var/www/svn/conf/htpasswd test

Теперь сделаем файл прав доступа заведенным пользователям

# vi /var/www/svn/conf/svn-access

В нем распишем, что доступ ко всем репозиториям любым пользователям запрещен,
а нашему новому пользователю test разрешена запись и чтение из всех репозиториев

[/]
* =
test = rw

Теперь назначим всей папке svn и вложенным подпапкам и файлам пользователя apache, а иначе он не сможет получить доступ до репозиториев и всё что мы получим, это сообщение об ошибке “You don’t have permission to access /svn/ on this server.”

# chown -R apache:apache /var/www/svn

Вот и всё теперь сервер готов к использованию. Теперь зайдя по сслыке в вашем браузере

https://ваш_ip/svn/project/

Вам будет предложено авторизоваться, а после вы увидите, что ваш репозиторий пустой и находится в состоянии ревизии 0.
“Revision 0: /”

Retweet

Похожие статьи

Комментарии

Константин
07 May, 2011в07:02

Спасибо. Статья помогла. В статье увидел мелочи, которые не были описаны на других сайтах и из-за которых не могли нормально все поставить.

Poluekt
27 Jul, 2011в13:42

Спасибо. Удобно использовать SVNParentPath чтобы в одной секции Location все репозитории определить. В других статьях этого нет.

escobar
07 Feb, 2014в12:55

А почему не указано, что нужен сам Апач? Автор, внесите соответствующие сведения. А то благодарности какие-то тут пишут, а статья – неполная.

Дмитрий Андреев
07 Feb, 2014в13:14

Простите мою оплошность, конечно чтобы установить модуль для Apache, вам придется поставить сам Apache.

Я думаю теперь моя статья стала совсем полной.

Оставить комментарий