Pull to refresh

Установка и настройка SVN, Apache, Trac для Windows. Часть 2 — Apache и SVN

Reading time4 min
Views7.2K
Назад к: Часть 1 — SVN ...
В этой части:
  • Устанавливаем Apache
  • Подключаем SVN к Apache
  • Настройка Apache для работы с SVN
  • Настройка SVN Авторизации по пути (Path-Based Authorization)

Устанавливаем Apache

  1. запускаем apache_2.0.63-win32-x86-openssl-0.9.7m.msi
  2. вводим начальные настройки
    Начальные данные для установки Apapche
  3. выбираем тип установки Custom
    Выбираем тип установки Apapche
  4. указываем каталог установки C:\usr\local\Apache2
    Выбираем каталог установки Apapche
    Каталог выбран правильно
    Каталог установки Apapche
  5. дождитесь конца установки.

Подключаем SVN к Apache

  1. Скопируйте из каталога C:\usr\local\Subversion\bin\ в каталог C:\usr\local\Apache2\modules\ все файлы *.so, *.dll
    • intl3_svn.dll
    • libapr.dll
    • ...
    • ssleay32.dll
    • mod_authz_svn.so
    • mod_dav_svn.so

Настройка Apache для работы с SVN

Настраиваем SVN для работы с несколькими хранилищами сразу.

Настройка:

  1. создайте каталог C:\usr\local\Apache2\conf\svn\ и создайте в нем файл httpd-svn.conf со следующим содержанием:
    	# httpd-svn.conf SVN Config file
    	#
    	# Подключаем модули для работы с SVN
            LoadModule dav_module         modules/mod_dav.so
    	LoadModule dav_svn_module     modules/mod_dav_svn.so
    	LoadModule authz_svn_module 	modules/mod_authz_svn.so
    	
    	<Location /svn>
    	DAV svn
    	# Абсолютный путь к каталогу содержащему SVN хранилища
      	SVNParentPath "D:/repos"
    	# выводит список хранилищ
    	SVNListParentPath on
    	# файл оформления списка хранилищ
    	SVNIndexXSLT "/svnindex.xsl"
    
      	# файл ACL разграничения доступа к хранилищам
    	# раскоментируйте для использования
      	AuthzSVNAccessFile conf/svn/svnaccess
    
      	# только аутентифицированные пользователи получат доступ к хранилищу
      	Require valid-user
    
      	# Тип аутентификации
      	AuthType Basic
    	# Общее название хранилища
      	AuthName "My SVN Repository"
    	# Файл с паролями пользователей для доступа в SVN хранилище
      	AuthUserFile conf/svn/svnpasswd
    
    	</Location>
    	
  2. перейдите в каталог C:\usr\local\Apache2\conf\
  3. откройте файл httpd.conf и добавьте следующие строки в конец файла:
    	# Subversion system
    	include conf/svn/httpd-svn.conf
    	
  4. сохраните файл и закройте его.
В каталог C:\usr\local\Apache2\htdocs\ скопируйте файлы:Для доступа введите имя guest и оставьте пароль пустым.

Создание файла паролей svnpasswd


Первый способ — используем скрипт svnuser.bat

  1. Откройте блокнот и скопируйте следующий код
    @echo off
    if %1=="" goto USAGE
    
    if not exist svnpasswd htpasswd -cm svnpasswd %1
    if exist svnpasswd htpasswd -m svnpasswd %1
    goto EXIT
    
    :USAGE
    echo Create SVN access file
    echo Usage: svnuser username 
    
    :EXIT
    
  2. Сохраните файл с именем
    svnuser.bat
    в каталог C:\usr\local\Apache2\bin\
  3. запустите командную строку и перейдите в каталог C:\usr\local\Apache2\bin\
  4. добавьте пользователей по очереди с помощью команды
    svnuser имя
    , программа запросит пароль — введите его.
  5. в каталоге C:\usr\local\Apache2\bin\ вы найдете созданный файл с паролями svnpasswd
  6. скопируйте файл в каталог C:\usr\local\Apache2\conf\svn\

Второй способ — вручную

  1. Откройте командную строку
  2. перейдите в каталог C:\usr\local\Apache2\bin\
  3. чтобы добавить пользователей имеющих право доступа к хранилищу, выполните для каждого пользователя команду
    htpasswd svnpasswd user1 passwd_for_user1
  4. в каталоге C:\usr\local\Apache2\bin\ вы найдете созданный файл с паролями svnpasswd
  5. скопируйте файл в каталог C:\usr\local\Apache2\conf\svn\
Примечание
htpasswd требует ключ -b для каждого запуска (чтобы пароль из командной строки можно было вводить) и -c для первого запуска, чтобы создать файл с паролями


Настройка SVN Авторизации по пути (Path-Based Authorization)


В SVN есть возможность разграничить области доступа пользователей. Создаётся файл специального формата, в котором указываем пути доступные пользователям. Приведу пример.
В списке имеем 3 хранилища: RepA, RepB, docs. И 3 пользователя: oleg, ira, sveta.

Разделяем пользователей на группы:
Внимание! Комментарии в файле не допускаются, поэтому не забудьте их удалить!
[groups]
admins = oleg        // группа администраторы, запишем oleg      
devteam = ira, oleg  // группа разработчиков главного проекта
editors = @devteam, sveta  // пользователи пишущие документацию
// ранее описанные группы пользователей можно включить в последующие,
// при ссылке на группу используется @имя_группы

Укажем, кто может просматривать листинг имеющихся хранилищ.
По умолчанию разрешаем всем просматривать. Правило распространяется на вложенные хранилища!Группе администраторов разрешаем редактирование файлов и настроек хранилища.
[/]
* = r
@admins = rw

Доступ к хранилищу RepA.
Из корневого элемента сюда распространяется правило, разрешить просмотр всем (* = r), однако некоторым пользователям нужно запретить доступ в это хранилище, это можно сделать, записав имя пользователя с пустым значением модификатора доступа. Запретим пользователю oleg доступ в хранилище, а ira получит полный контроль, как разработчик.
[RepA:/]
oleg =                // отнимаем все права доступа, пустое значение
ira = rw              // чтение, запись

Доступ к хранилищу RepB.
Запретим пользователю ira доступ в хранилище, а oleg получит полный контроль, как разработчик.
[RepB:/]
ira =
oleg = rw

Доступ к хранилищу документов.
Разрешим полный доступ группе разработчиков документации editors.
[docs:/]
@editors = rw


В итоге получим файл настроек для авторизации svnaccess.
[groups]
admins = oleg
devteam = ira, oleg
editors = @devteam, sveta

[/]
* = r
@admins = rw

[RepA:/]
oleg =
ira = r

[RepB:/]
ira =
oleg = r

[docs:/]
@editors = rw
anonymous = r


Скопируйте созданный файл svnaccess в каталог C:\usr\local\Apache2\conf\svn\

Перезапустите сервер Apache
Откройте браузер и введите адрес http://localhost/svn/

Браузер запросит у вас имя и пароль указанные вами ранее в файле
C:\usr\local\Apache2\conf\svn\svnpasswd,
введите их и Вы увидите список хранилищ store1, store2

Далее к: Часть 3 — Trac ...
Tags:
Hubs:
Total votes 9: ↑2 and ↓7-5
Comments4

Articles