Установка и настройка SVN, Apache, Trac для Windows. Часть 2 — Apache и SVN
Назад к: Часть 1 — SVN ...
В этой части:- Устанавливаем Apache
- Подключаем SVN к Apache
- Настройка Apache для работы с SVN
- Настройка SVN Авторизации по пути (Path-Based Authorization)
Устанавливаем Apache
- запускаем apache_2.0.63-win32-x86-openssl-0.9.7m.msi
- вводим начальные настройки
- выбираем тип установки Custom
- указываем каталог установки C:\usr\local\Apache2
Каталог выбран правильно
- дождитесь конца установки.
Подключаем SVN к Apache
- Скопируйте из каталога 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 для работы с несколькими хранилищами сразу.Настройка:
- создайте каталог 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>
- перейдите в каталог C:\usr\local\Apache2\conf\
- откройте файл httpd.conf и добавьте следующие строки в конец файла:
# Subversion system include conf/svn/httpd-svn.conf
- сохраните файл и закройте его.
Создание файла паролей svnpasswd
Первый способ — используем скрипт svnuser.bat
- Откройте блокнот и скопируйте следующий код
@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
- Сохраните файл с именем
svnuser.bat
в каталог C:\usr\local\Apache2\bin\ - запустите командную строку и перейдите в каталог C:\usr\local\Apache2\bin\
- добавьте пользователей по очереди с помощью команды
svnuser имя
, программа запросит пароль — введите его. - в каталоге C:\usr\local\Apache2\bin\ вы найдете созданный файл с паролями svnpasswd
- скопируйте файл в каталог C:\usr\local\Apache2\conf\svn\
Второй способ — вручную
- Откройте командную строку
- перейдите в каталог C:\usr\local\Apache2\bin\
- чтобы добавить пользователей имеющих право доступа к хранилищу, выполните для каждого пользователя команду
htpasswd svnpasswd user1 passwd_for_user1
- в каталоге C:\usr\local\Apache2\bin\ вы найдете созданный файл с паролями svnpasswd
- скопируйте файл в каталог 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