В данном руководстве описываются установка и конфигурирование 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_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.
Остановить сервис '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.so в папку C:\Program Files\Apache\modules.
Остановить сервис '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
Создать папку 'C:\Program Files\Subversion' и скопировать в неё установочные файлы.
Создать папку S:\root\svn.
Создать репозиторий выполнив командну '"C:\Program Files\Subversion\bin\svnadmin.exe" create S:\root\svn\test-project'.
Остановить сервис '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).
Создать группу 'Software Developers' и добавляем в неё нужных пользователей.
Создаём группу 'Software Users' и добавляем в неё нужных пользователей.
Для домена надо делать Security Group, а не Distribution.
Тонкости происходящего, зависящие от OU в котором находится группа не изучены.
Тонкости происходящего, когда пользователь сразу в обеих группах не изучены.
Остановить сервис '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-2.4.4.msi
Нажать Next.
Выбрать альтернативный путь (например C:\Program Files\Python).
Нажать Next.
Нажать Next.
Нажать Finish.
Запускаем mod_python-3.3.1.win32-py2.4-Apache2.2.exe
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Указываем каталог Apache (например C:\Program Files\Apache)
Нажать OK.
Нажать Finish.
Остановить сервис '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-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-2.5.1.win32-py2.4.exe.
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Нажать Finish.
Запускаем svn-python-1.4.5.win32-py2.4.exe.
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Нажать Finish.
Запускаем egenix-mx-base-3.0.0.win32-py2.4.exe
Нажать Next.
На данном этапе должен автоматически определиться путь к инсталлированому Python.
Нажать Next.
Нажать Next.
Нажать Finish.
Выполнить команду '"C:\Program Files\Python\python.exe" ez_setup.py setuptools' находясь в каталоге с файлом ez_setup.py.
Создать папку 's:\root\data'.
Дать полный поступ учётной записи PosgreSQL на папку 's:\root\data'.
Запустить 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'.
Добавить путь 'C:\Program Files\PostgreSQL\bin' к значению переменной окружения PATH.
Перелогиниться.
Выполнить команду '"C:\Program Files\Python\python.exe" setup.py install' находясь в каталоге с файлами 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'.
Остановить сервис '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'.