sasha2002 Blog's

Just another blog from admin's

Установка и настройка Apache, WebDAV для доступа к Subversion —

Subversion – централизованная система управления версиями, распространяемая в исходных кодах. Так же иногда называется svn, по названию клиентской программы, входящей в стандартный дистрибутив Subversion. Разрабатывалась, как альтернатива системе CVS, обладающая всеми основными функциями CVS и свободная от ряда её недостатков.

В настроящее время Subversion используется во многих известных проектах: Apache, Samba, Google Code, SourceForge.net и многих других.

WebSvn – онлайн subversion клиент. По сути, есть не что иное, как набор PHP скриптов, предоставляющий удаленный доступ к репозиториям Subversion. Поддерживается работа с несколькими репозитариями, допускается редактирование шаблонов интерфейса, поддерживется опция Apache MultiViews и предоставляется возможность экспорта в RSS.

Установка Subversion

Установка Subversion классически проста:

$ sudo aptitude install subversion

Следующим шагом необходимо создать группу для subversion, и добавить в нее необходимых пользователей:

$ sudo groupadd subversion
$ sudo addgroup dw subversion

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

После того, как Subversion установлен, можно создавать репозитарии:

$ sudo mkdir /var/svn-repos/
$ sudo svnadmin create –fs-type fsfs /var/svn-repos/my.svn.repos.ru

Далее, необходимо ограничить доступ к репозитарию:

# Разрешатся доступ к репозитарию только
# http-серверу (www-data) и аккаунтам из группы subversion
$ sudo chown -R www-data:subversion /var/svn-repos/*
$ sudo chmod -R 770 /var/svn-repos/*

Установка и настройка Apache, WebDAV для доступа к Subversion

Необходимо установить не только apache2, но и модуль svn-сервера для apache:

$ sudo aptitude install apache2 libapache2-svn

Далее, необходимо включить модули для работы с WebDAV:

$ sudo a2enmod dav
$ sudo a2enmod dav_svn

Следующим шагом, необходимо настроить политику доступа к репозитариям subversion через apache. Для этого необходимо отредактировать следующий файл конгурации apache:

$ sudo vim /etc/apache2/mods-available/dav_svn.conf

По умолчанию, в файле все закомментировано. Необходимо расскомментировать необходимые строки, чтобы в результате получилось что-то похожее на следующее:

<Location /svn>
# Включение доступа к репозиторию subversion
DAV svn

# Путь к конкретному репозиторию
#SVNPath /var/lib/svn

# Альтернатива SVNPath. Если необходимо доступ к нескольких репозиториям,
# располагающимся в одной директории.
# Задается либо SVNPath, либо SVNParentPath. Оба параметра одновременно
# задавать нельзя.
SVNParentPath /var/svn-repos

# Включение аутентификации
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>

Далее, необходимо задать пользователей, которым разрешен доступ к subversion через apache:

# Создается файл пользователей и добавляется пользователь user1
$ sudo htpasswd -c /etc/apache2/dav_svn.passwd user1

# Добавляется пользователь user2
$ sudo htpasswd /etc/apache2/dav_svn.passwd user2

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

$ sudo /etc/init.d/apache2 restart

Проверка доступа к Subversion

Первым шагом, необходимо создать типовую структуру проекта в subversion и импортировать её:

$ mkdir -p ~/svn-start/branches ~/svn-start/tags/ ~/svn-start/trunk/
$ svn import -m “init ” ~/svn-start/ http://localhost/svn/my.svn.repos.ru/

В конце проверяем, что хранилище доступно на чтение и структура проекта совпадает с той, что импортировалась ранее:

$ svnlook tree /var/svn-repos/my.svn.repos.ru
/
trunk/
branches/
tags/
Установка и настройка WebSvn
Установка WebSvn

Установка WebSvn достаточно проста:

$ sudo aptitude install websvn enscript

Пакет enscript необходим для подстветки синтаксиса.

В процессе установки будут заданы несколько вопросов, в частности:

для какого типа сервера настраивается WebSvn – необходимо просто нажать enter
родительская директория для subversion репозитариев – необходимо задать: “/var/svn-repos”. Таким образом, все репозитории, которые появятся в этой директории, будут доступны для просмотра через WebSvn.
путь к конкретному репозитарию – необходимо оставить пустым, если нет необходимости ограничивать выбор только конкретными репозиториями. В противном случае, необходимо указать полные пути к репозиториям.

Результат настройки будет сохранен в файле /etc/websvn/svn_deb_conf.inc. Сразу после установки, все репозитории будут доступны по адресу: http://localhost/websvn/.
Настройка WebSvn: ограничение доступна

Однако полный доступ к репозитариям – это не всегда хорошо. В случае, если репозитарий не публичный, необходимо ограничить доступ к WebSvn только для конкретных пользователей. Для этого необходимо отредактировать файл /etc/apache2/conf.d/websvn:

$ sudo vim /etc/apache2/conf.d/websvn

Результируйющие файл конфигурации должен иметь приблизительно следующий вид:

Alias /websvn /usr/share/websvn

<Directory /usr/share/websvn>
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user

DirectoryIndex index.php
Options FollowSymLinks

<IfModule mod_php4.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
</IfModule>
</Directory>

Настройка WebSvn: редактирование шаблона

WebSvn из коробки поддерживает русский язык. Поэтому минимум необходимых настроек – это корректировка шаблона для вывода приемлимого описания проектов на главной странице WebSvn. По умолчанию, оно на английском языке и о чем не говорит пользователю, работающему с webSVN. Поэтому необходимо отредактировать следующий файл (по умолчанию используется шаблон calm):

$ sudo vim /usr/share/websvn/templates/calm/index.tmpl

Очевидно, что можно отредактировать весь шаблон по своему усмотрению, но для того, чтобы скорректировать описание достаточно уделить внимание лишь следующему фрагменту:

<div id=”info”>
<h2>About</h2>
<dl>
<dt>Summary:</dt>
<dd>
You can customize this short message in the index.tmpl
of this template in order to tell your visitors what they
find in your repositories.
</dd>
<dd>
Visit <a href=”http://websvn.tigris.org”>websvn.tigris.org</a>
for more information about WebSVN.
</dd>
<dd>
Learn more about Subversion at <a href=”http://subversion.tigris.org”>
subversion.tigris.org</a>.
</dd>
</dl>
</div>

Результат, например, может иметь следующий вид:

<code><div id=”info”>
<h2>О репозитарии</h2>
<dl>
<dt>
Пример настройки WebSvn на Debain / Ubuntu для проекта
<a href=”URL”> Debain / Ubuntu </a>.
</dt>
</dl>
</div></code>

Более подробно о правилах редактирования шаблонов WebSvn можно узнать из документации: /usr/share/doc/websvn/templates.txt.gz.


Categorised as: Linux



Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.