Система контроля версий Subversion крайне полезная вещь. Особенно, при совместной разработке проектов с несколькими участниками. Только трудной найти хороший бесплатный сервер 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
Всё репозиторий абсолютно чистый готов к работе, теперь обеспечим доступ к нему по сети.
Для начала отредактируем файл конфигурации 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;quot;Authorization Realm&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: /”
Комментарии
07 May, 2011в07:02
Спасибо. Статья помогла. В статье увидел мелочи, которые не были описаны на других сайтах и из-за которых не могли нормально все поставить.
27 Jul, 2011в13:42
Спасибо. Удобно использовать SVNParentPath чтобы в одной секции Location все репозитории определить. В других статьях этого нет.
07 Feb, 2014в12:55
А почему не указано, что нужен сам Апач? Автор, внесите соответствующие сведения. А то благодарности какие-то тут пишут, а статья – неполная.
07 Feb, 2014в13:14
Простите мою оплошность, конечно чтобы установить модуль для Apache, вам придется поставить сам Apache.
Я думаю теперь моя статья стала совсем полной.