Setup Guide: SVN, Trac
От: adontz Грузия http://adontz.wordpress.com/
Дата: 10.12.07 00:53
Оценка: 84 (15)
#Имя: FAQ.tools.svn+trac.guide

Руководство по установке Trac под Windows

В данном руководстве описываются установка и конфигурирование SVN и Trac. Программы будут записаны на диск C: в нестандартные папки, а данные на диск S:. Будет использоваться интегрированная аутентификация Windows NT.

Файлы

Необходимые файлы

http://httpd.apache.org/
    Apache                    apache_2.2.6-win32-x86-openssl-0.9.8e.msi
    mod_python                mod_python-3.3.1.win32-py2.4-Apache2.2.exe

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100
    SVN                        svn-win32-1.4.5.zip (распаковать, инсталляцию не использовать)

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
    SVN Python bindings        svn-python-1.4.5.win32-py2.4.exe

http://www.postgresql.org/ftp/binary/v8.2.5/win32/
    PostgreSQL                postgresql-8.2.5-1.zip (распаковать)

http://python.org/download/releases/2.4.4/
    Python                    python-2.4.4.msi (это не последняя версия)

http://svn.edgewall.org/repos/trac/trunk
    Trac                    Head revision (скачать клиентом SVN)

http://sourceforge.net/project/showfiles.php?group_id=162518
    mod_auth_sspi            mod_auth_sspi-1.0.4-2.2.2.zip (распаковать)

http://sourceforge.net/project/showfiles.php?group_id=16528
    pyPgSQL                    pyPgSQL-2.5.1.win32-py2.4.exe
    
http://peak.telecommunity.com/DevCenter/EasyInstall
    ez_setup.py

Дерево папок

ROOT
|---Apache
|   |   apache_2.2.6-win32-x86-openssl-0.9.8e.msi
|   |
|   |---mod_auth_sspi-1.0.4
|       |   Makefile
|       |   my_cfg.txt
|       |   
|       |---bin
|       |       mod_auth_sspi.so
|       |       sspipkgs.exe
|       |
|       |---doc
|       |---src
|
|---PostgreSQL
|       postgresql-8.2-int.msi
|       postgresql-8.2.msi
|       README.TXT
|       upgrade.bat
|
|---Python
|       egenix-mx-base-3.0.0.win32-py2.4.exe
|       mod_python-3.3.1.win32-py2.4-Apache2.2.exe
|       pyPgSQL-2.5.1.win32-py2.4.exe
|       python-2.4.4.msi
|       svn-python-1.4.5.win32-py2.4.exe
|
|---SVN
|   |---bin
|   |
|   |---doc
|   |
|   |---iconv
|   |
|   |---include
|   |
|   |---lib
|   |
|   |---licenses
|   |
|   |---share
|
|---Trac
    |
    |---cgi-bin
    |
    |---contrib
    |
    |---doc
    |
    |---sample-plugins
    |
    |---trac
    |
    |---wiki-macros
    
    ez_setup.py

Установка

В связи со сложностью и неочевидностью процесса установки настоятельно рекомендуется потренироваться в виртуальной машине прежде чем устанавливать на реальный сервер, в особенности если вы используете версии продукта отличные от описанных (в этом случае проблемы несовместимости будут наверняка).
Несмотря на диагностическое сообщение, точное описание ошибки возникшей при запуски Apache следует искать в логе Application, а не System.
В качестве редактора тестовых файлов использовался notepad2. Может использоваться любой другой редактор отображающий номера строк.
Помните, что Trac работает только с локальными репозиториями SVN. говоря другими словами Trac и SVN должны быть физически расположены на одной машине.

Инсталляция Apache

Запустить apache_2.2.6-win32-x86-openssl-0.9.8e.msi.
Нажать Next.
Согласиться с лицензией.
Нажать Next.
Нажать Next.
Ввести параметры сервера, включая e-mail.
Нажать Next.
Выбрать Custom.
Нажать Next.
Нажать кнопку Change и указать альтернативный путь (например C:\Program Files\Apache).
Нажать Next.
Нажать Install.
Нажать Finish.

Настройка Apache

Остановить сервис 'Apache2.2'.
Открыть файл C:\Program Files\Apache\conf\httpd.conf.
В строке 53 заменить 'Listen 80', 'На Listen 8080'.
Создать каталог S:\root\www
В строке 149 заменить 'DocumentRoot "C:/Program Files/Apache/htdocs"' на 'DocumentRoot "S:/root/www"'.
В строке 177 заменить '<Directory "C:/Program Files/Apache/htdocs">' на '<Directory "S:/root/www">'.
Сохранить файл.
Запустить сервис 'Apache2.2'.

Примечание: Обратите внимание на прямые слэши в путях.

Статус

При открытии URL http://localhost:8080/ видно содержимое каталога S:\www-root.

Инсталляция mod_auth_sspi

Скопировать файл mod_auth_sspi.so в папку C:\Program Files\Apache\modules.

Настройка Apache

Остановить сервис 'Apache2.2'.
Открыть файл C:\Program Files\Apache\conf\httpd.conf.
После строки 114 добавить строку 'LoadModule sspi_auth_module modules/mod_auth_sspi.so'.
После строки 204 добавить строки
    AuthName "DEV"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIOfferBasic On
    SSPIOmitDomain On

    require valid-user

Сохранить файл.
Запустить сервис 'Apache2.2'.

Статус

После обращения к URL http://localhost:8080/ в файле C:\Program Files\Apache\logs\access.log появляются строки вида
127.0.0.1 - - [09/Dec/2007:17:07:49 +0400] "GET / HTTP/1.1" 401 401
127.0.0.1 - - [09/Dec/2007:17:07:49 +0400] "GET / HTTP/1.1" 401 401
127.0.0.1 - Administrator [09/Dec/2007:17:07:49 +0400] "GET / HTTP/1.1" 200 201

Инсталляция SVN

Создать папку 'C:\Program Files\Subversion' и скопировать в неё установочные файлы.

Настройка SVN

Создать папку S:\root\svn.
Создать репозиторий выполнив командну '"C:\Program Files\Subversion\bin\svnadmin.exe" create S:\root\svn\test-project'.

Настройка Apache

Остановить сервис 'Apache2.2'.
Открыть файл C:\Program Files\Apache\conf\httpd.conf.
В строках 84 и 85 стереть начальный символ # разрешая загрузку модулей dav_module и dav_fs_module.
После строки 115 добавить строки
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

После строки 495 добавить строки
<Location /svn>
    DAV svn
    SVNListParentPath on
    SVNParentPath S:\root\svn
    AuthName "Subversion"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIOfferBasic On
    SSPIOmitDomain On
    Require valid-user
</Location>

Сохранить файл.
Запустить сервис 'Apache2.2'.

Статус

При обращении по URL http://localhost:8080/svn/test-project/ возвращается текст.
Revision 0: /
Powered by Subversion version 1.4.5 (r25188).

Настройка Windows

Создать группу 'Software Developers' и добавляем в неё нужных пользователей.
Создаём группу 'Software Users' и добавляем в неё нужных пользователей.
Для домена надо делать Security Group, а не Distribution.
Тонкости происходящего, зависящие от OU в котором находится группа не изучены.
Тонкости происходящего, когда пользователь сразу в обеих группах не изучены.

Настройка Apache

Остановить сервис 'Apache2.2'.
Открыть файл C:\Program Files\Apache\conf\httpd.conf.
В строке 507 заменить 'Require valid-user' на строки
    <Limit OPTIONS GET REPORT PROPFIND>
        Require group "DOMAIN-NAME\Software Users"
        Require group "DOMAIN-NAME\Software Developers"
    </Limit>
    <LimitExcept OPTIONS GET REPORT PROPFIND>
        Require group "DOMAIN-NAME\Software Developers"
    </LimitExcept>

где DOMAIN-NAME имя домена или NetBIOS имя сервера для сети без домена.
Сохранить файл.
Запустить сервис 'Apache2.2'.

Статус

При обращении по URL http://localhost:8080/svn/test-project/ пользователем входящим в групп "DOMAIN-NAME\Software Users" и "DOMAIN-NAME\Software Developers" возвращается текст
Revision 0: /
Powered by Subversion version 1.4.5 (r25188).

Все остальные пользователи не имеют доступа на чтение.
Пользователи группы 'DOMAIN-NAME\Software Users' могут исполнять SVN Checkout, пользовали группы 'DOMAIN-NAME\Software Developers' могут исполнять SVN Checkout и SVN Checkin.
Будьте внимательны при тестировании если добавляете в группу 'DOMAIN-NAME\Software Developers' или 'DOMAIN-NAME\Software Users' учётную запись под которой работаете. Для обновления информации о членстве пользователя в группах необходимо выполнить операцию Log Off.

Примечание: для очистки репозитория от информации накопившейся в нём в ходе тестирования прав доступа можете стереть каталог 'S:\root\svn\test-project' и заново выполнить команду '"C:\Program Files\Subversion\bin\svnadmin.exe" create S:\root\svn\test-project'.

Примечание: на данном этапе установка SVN полностью завершена. Если установка Trac не требуется дальнейшие шаги можно не исполнять.

Инсталляция Python

Запустить python-2.4.4.msi
Нажать Next.
Выбрать альтернативный путь (например C:\Program Files\Python).
Нажать Next.
Нажать Next.
Нажать Finish.

Инсталляция mod_python

Запускаем mod_python-3.3.1.win32-py2.4-Apache2.2.exe
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Указываем каталог Apache (например C:\Program Files\Apache)
Нажать OK.
Нажать Finish.

Настройка Apache

Остановить сервис 'Apache2.2'.
Открыть файл C:\Program Files\Apache\conf\httpd.conf.
После строки 117 добавить строку 'LoadModule python_module modules/mod_python.so'.
После строки 216 добавить строки
AddHandler mod_python .py
PythonHandler test 
PythonDebug On

Сохранить файл.
Запустить сервис 'Apache2.2'.
Создать в каталоге S:\root\www файл test.py с содержимым
from mod_python import apache

def handler(req):
    req.content_type = 'text/plain'
    req.write("Hello World!")
    return apache.OK


Примечание: Очень важно сохранить отступы, убедиться что они состоят из одного символа табуляции.

Статус

При обращении по URL http://localhost:8080/test.py возвращается текст "Hello world!".

Инсталляция PostgreSQL

Запускаем postgresql-8.2.msi.
Нажать start.
Нажать Next.
Нажать Next.
Нажать кнопку Browse и указать альтернативный путь (например C:\Program Files\PostgreSQL).
Нажать Next.
Ввести имя пользователя, под учётной записью которого будет запущен сервис, и пароль.

Примечание: Пользователю которого вы укажете будет запрещён доступ на запись в папку 'C:\Program Files\PostgreSQL'. Если ввести параметры текущего интерактивного пользователя, то инсталляция вообще не завершится.

Примечание: Если введённый пароль излишне прост будет предложено сгенерировать криптостойкий пароль. К сожалению, функция генерации криптостойкого случайного пароля работает не корректно и лучше от её использования отказаться.

Нажать Next.
Нажать Yes.
Нажать No.
Ввести имя пользователя, администратора БД, и пароль.
Нажать Next.
Нажать Next.
Нажать Next.
Нажать Next.
Нажать Finish.

Инсталляция PyPgSQL

Запускаем pyPgSQL-2.5.1.win32-py2.4.exe.
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Нажать Finish.

Инсталляция SVN Pythion Bindings

Запускаем svn-python-1.4.5.win32-py2.4.exe.
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Нажать Finish.

Инсталляция eGenix MX Base

Запускаем egenix-mx-base-3.0.0.win32-py2.4.exe
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Нажать Finish.

Инсталляция Setup Tools

Выполнить команду '"C:\Program Files\Python\python.exe" ez_setup.py setuptools' находясь в каталоге с файлом ez_setup.py.

Настройка Windows

Создать папку 's:\root\data'.
Дать полный поступ учётной записи PosgreSQL на папку 's:\root\data'.

Настройка PostgreSQL

Запустить PgAdmin III.
В дереве серверов щёлкнуть правой кнопкой по серверу 'PostgreSQL Database server 8.2 (localhosr:5432)' и выбрать пункт 'Connect'.
Щёлнкуть правой кнопкой мыши по пункту 'Tablespaces (2)' и выбрать пункт 'New Tablespace...'.
В поле Name ввести 'trac_ts'.
В поле Location ввести 's:/root/data'.
В поле 'Owner' указать 'postgres'.
Нажать 'OK'.
Щёлнкуть правой кнопкой мыши по пункту 'Databases (1)' и выбрать пункту 'New Database...'.
В поле 'Name' ввести 'trac'.
В поле 'Owner' указать 'postgres'.
В поле 'Encoding' указать 'UTF8'.
В поле 'Tablespace' указать 'trac_ts'.
Нажать 'OK'.

Настройка Windows

Добавить путь 'C:\Program Files\PostgreSQL\bin' к значению переменной окружения PATH.
Перелогиниться.

Инсталляция Trac

Выполнить команду '"C:\Program Files\Python\python.exe" setup.py install' находясь в каталоге с файлами Trac.

Настройка Trac

Выполнить команду '"C:\Program Files\Python\Scripts\trac-admin" s:/root/trac/test-project initenv'.
Ввести отображаемое имя проекта.
Ввести строку соединения с БД в формате 'postgres://username:password@localhost/trac'.
Ввести тип репозитория 'svn'.
Ввести локальный путь к репозиторию 's:/root/svn/test-project'.

Настройка Apache

Остановить сервис 'Apache2.2'.
Открыть файл C:\Program Files\Apache\conf\httpd.conf.
После строки 519 добавить строки
<Location /trac>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir s:\root\Trac
    PythonOption TracUriRoot /trac
    AuthName "Trac"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIOfferBasic On
    SSPIOmitDomain On
    Require group "DOMAIN-NAME\Software Users" "DOMAIN-NAME\Software Developers"
</Location>

где DOMAIN-NAME имя домена или NetBIOS имя сервера для сети без домена.

Сохранить файл.
Запустить сервис 'Apache2.2'.

Статус

Наконец-то вы поставили Trac Он доступен по адресу http://localhost:8080/trac/test-project/
Для дальнейшего администрирования выполните команду '"C:\Program Files\Python\Scripts\trac-admin" s:/root/trac/test-project'.
A journey of a thousand miles must begin with a single step © Lau Tsu
svn trac
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.