Standalone TRAC для чайников
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.03.06 14:13
Оценка: 196 (24) +1
#Имя: FAQ.tools.TRAC.Standalone
Standalone TRAC для чайников


Исходная задача

Для работы над проектом требовалось найти и установить какую-либо систему для поддержки bug-tracking, базы знаний (wiki) и как-либо это все еще завязать с репозиторием исходного кода проекта на subversion. Идеально для данного случая подошла система под названием trac.

Однако, для меня все оказалось не так просто — будучи наивным молодым человеком, развращенным привычкой к one-touch инсталляции, я плакал, кололся, но, за неимением достойной альтернативы, продолжал жрать кактус в попытках заставить работать сие творение. Несмотря на заявления некоторых людей о том, что установить Apache, настроить его и прикрутить к нему trac — это как два байта переслать, никто так и не захотел поделиться этим знанием в виде пошаговой инструкции, а разобраться во всем самому за адекватное (1-2 дня) время у меня не получилось. В любом случае, перспектива тащить прицепом ради такого дела Apache меня совершенно не радовала, по этому, я остановился на standalone версии trac.

Вполне возможно, что я не уникален в своем роде и кому-нибудь эта инструкция сможет помочь так же, как она помогла бы мне, будь она у меня.


Исходный материал

Для начала будет необходимо собрать все кубики для trac-конструктора. Итак:

Несмотря на то, что на данный момент доступна версия Python 2.4.2, необходимо, чтобы все дополнительные компоненты так же соответствовали данной версии. На момент написания этого текста, компонент для связи Python и Subversion поддерживал только Python 2.3.x. Соответственно, все остальные компоненты и сам Python должны быть для версии Python 2.3.x.

Качаем:

1. Качаем сам Python нужной версии. На момент написания этого текста это файл Python-2.3.5.exe, который так же можно скачать со страницы сайта http://www.python.org/download.
2. Качаем компонент для связи Python и Subversion. На момент написания этого текста это файл svn-win32-1.3.0_py.zip, который так же можно скачать пройдя по соответствующим ссылкам сайта http://subversion.tigris.org.
3. Качаем компонент ClearSilver для работы с HTML шаблонами. На момент написания этого текста это файл clearsilver-0.9.14.win32-py2.3.exe, который так же можно скачать со страницы сайта http://www.clearsilver.net/downloads.
4. Качаем компонент для связи Python и SQLite. На момент написания этого текста это файл pysqlite-2.1.3.win32-py2.3.exe, который так же можно скачать со страницы сайта http://initd.org/tracker/pysqlite.
5. Качаем движок базы данных SQLite (самый последний). На момент написания этого текста это файл sqlite-3_3_4.zip, который так же можно скачать со страницы сайта http://www.sqlite.org/download.html.
6. Качаем trac. Если вы хотите англоязычную версию, то на момент написания этого текста это файл trac-0.9.4.win32.exe, который так же можно скачать со страницы сайта http://projects.edgewall.com/trac/wiki/TracDownload. Если вы хотите русскую версию trac, то на момент написания этого текста это файл trac-0.9.russian-r234.tar.bz2, который так же можно скачать со страницы сайта http://vyt.vzljot.ru/pub/trac, или http://vyt.vzljot.ru/trac_russian/wiki.

Таким образом, все это счастье, на момент написания этого текста, занимает ~12MB.


Установка

1. Устанавливаем Python [Python-2.3.5.exe] — инсталлятор. В дальнейшем предполагается, что установка производится в директорию c:\program files\python (далее как "директория Python").
2. Распаковываем архив с компонентом для связи Python и Subversion [svn-win32-1.3.0_py.zip] и перемещаем директории libsvn и svn в директорию Python.
3. Устанавливаем ClearSilver [clearsilver-0.9.14.win32-py2.3.exe] — инсталлятор.
4. Устанавливаем компонент для связи Python и SQLite [pysqlite-2.1.3.win32-py2.3.exe] — инсталлятор.
5. Распаковываем архив с движком базы данных SQLite и перемещаем файл sqlite3.exe в директорию Python.
6. Если вы хотите английскую версию trac, то запускаем файл trac-0.9.4.win32.exe — инсталлятор. Или. Если вы хотите русскую версию trac, то распаковываем архив trac-0.9.russian-r234.tar.bz2 и выполняем следующую команду:

python.exe setup.py install


При успешном выполнении команды на экран в конечном итоге должно вывестись сообщение "Thank you for choosing Trac 0.9.2. Enjoy your stay!". При выполнении скрипта setup.py производится копирование файлов в поддиректории Python, по этому, после успешной установки, содержимое распакованного архива не понадобится. Естественно, чтобы запускать python.exe без прописывания полного пути к этому файлу, необходимо добавить директорию Python в переменную окружения PATH — в дальнейшем это сэкономит много сил и нервов.


Настройка

Для тестирования и усвоения навыков работы с trac рекомендуется создать новый репозиторий subversion. При этом, обязательно, чтобы к нему был возможен прямой доступ как к директории (т.е. он должен находиться на том же компьютере, где вы хотите запустить trac). Для простоты и скорости работы в дальнейшем, напишем несколько скриптов.


enviroment.bat — в этом файле устанавливаются параметры для всех остальных скриптов. Замените пути, на свои собственные.

REM *** полное имя файла python.exe ***
SET PYTHON_EXE="c:\program files\python\python.exe"

REM *** команда запуска trac-admin ***
SET TRAC_ADMIN=%PYTHON_EXE% "c:\program files\python\scripts\trac-admin"

REM *** команда запуска tracd ***
SET TRACD=%PYTHON_EXE% "c:\program files\python\scripts\tracd"

REM *** путь до проекта trac ***
SET TRAC_PATH="d:\trac"

REM *** наименование проекта ***
SET TRAC_NAME=TRAC_PROJECT

REM *** путь до svn репозитория ***
SET TRAC_SVN="d:\svn"



create_trac.bat — скрипт для созданя проекта trac

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** выполнение команды ***
%TRAC_ADMIN% %TRAC_PATH% initenv %TRAC_NAME% sqlite:db/trac.db %TRAC_SVN% C:\PROGRA~1\python\share\trac\templates



Теперь, для создания проекта trac запустите скрипт create_trac.bat. После выполнения скрипта по пути %TRAC_PATH% (в данном примере, это d:\trac) будут созданы директории и файлы проекта. Важно! Перед выполнением скрипта, директория %TRAC_PATH% не должна существовать, в противном случае, попытка создания окружения приведет к ошибке.

Теперь можем попробовать запустить и насладиться первыми результатами. Для запуска воспользуемся небольшим скриптом:


run_tracd.bat — запуск standalone trac

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** запуск команды ***
%TRACD% %TRAC_PATH%



После запуска данного файла, наберите в строке адреса браузера http://localhost и проверьте результат.

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

По умолчанию, существует 2 группы пользователей:

anonymous — анонимный пользователь (любой пользователь, зашедший на страницу trac) с правами по умолчанию.
authenticated — авторизованный пользователь — набор прав для всех пользователей, прошедших авторизацию.

Для упрощения задания прав для группы пользователей напишем еще несколько скриптов:


list_permissions.bat — получить список прав для всех групп пользователей

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** вызов команды ***
%TRAC_ADMIN% %TRAC_PATH% permission list

REM *** ожидание завершения, т.к. на один экран редко входит ***
PAUSE



set_permissions.bat — задание прав для группы пользователей

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** установка значений переменных по умолчанию ***
SET TRACADMIN=n
SET BROWSER_VIEW=n
SET CHANGESET_VIEW=n
SET CONFIG_VIEW=n
SET FILE_VIEW=n
SET LOG_VIEW=n
SET SEARCH_VIEW=n
SET TIMELINE_VIEW=n
SET MILESTONE_ADMIN=n
SET MILESTONE_CREATE=n
SET MILESTONE_DELETE=n
SET MILESTONE_MODIFY=n
SET MILESTONE_VIEW=n
SET REPORT_ADMIN=n
SET REPORT_CREATE=n
SET REPORT_DELETE=n
SET REPORT_MODIFY=n
SET REPORT_SQL_VIEW=n
SET REPORT_VIEW=n
SET ROADMAP_ADMIN=n
SET ROADMAP_VIEW=n
SET TICKET_ADMIN=n
SET TICKET_APPEND=n
SET TICKET_CHGPROP=n
SET TICKET_CREATE=n
SET TICKET_MODIFY=n
SET TICKET_VIEW=n
SET WIKI_ADMIN=n
SET WIKI_CREATE=n
SET WIKI_DELETE=n
SET WIKI_MODIFY=n
SET WIKI_VIEW=n

REM *** запрос имени группы/пользователя ***
SET /P USER_NAME=User name : 

REM *** запрос на обнуление всех привелегий ***
SET /P RESET_ALL=Reset All permissions? 
IF /I %RESET_ALL%==y GOTO reset_permissions

REM *** администратор trac? ***
SET /P TRACADMIN=TRAC_ADMIN : 
IF /I %TRACADMIN%==y GOTO reset_permissions

REM *** привелегии общего просмотра ***
SET /P BROWSER_VIEW=BROWSER_VIEW : 
SET /P CHANGESET_VIEW=CHANGESET_VIEW : 
SET /P CONFIG_VIEW=CONFIG_VIEW : 
SET /P FILE_VIEW=FILE_VIEW : 
SET /P LOG_VIEW=LOG_VIEW : 
SET /P SEARCH_VIEW=SEARCH_VIEW : 
SET /P TIMELINE_VIEW=TIMELINE_VIEW : 

REM *** привелегии milestone ***
SET /P MILESTONE_ADMIN=MILESTONE_ADMIN : 
IF /I %MILESTONE_ADMIN%==y GOTO skip_milestone

SET /P MILESTONE_CREATE=MILESTONE_CREATE : 
SET /P MILESTONE_DELETE=MILESTONE_DELETE : 
SET /P MILESTONE_MODIFY=MILESTONE_MODIFY : 
SET /P MILESTONE_VIEW=MILESTONE_VIEW : 

:skip_milestone

REM *** привелегии отчетов ***
SET /P REPORT_ADMIN=REPORT_ADMIN : 
IF /I %REPORT_ADMIN%==y GOTO skip_report

SET /P REPORT_CREATE=REPORT_CREATE : 
SET /P REPORT_DELETE=REPORT_DELETE : 
SET /P REPORT_MODIFY=REPORT_MODIFY : 
SET /P REPORT_SQL_VIEW=REPORT_SQL_VIEW : 
SET /P REPORT_VIEW=REPORT_VIEW : 

:skip_report

REM *** привелегии roadmap ***
SET /P ROADMAP_ADMIN=ROADMAP_ADMIN : 
IF /I %ROADMAP_ADMIN%==y GOTO skip_roadmap

SET /P ROADMAP_VIEW=ROADMAP_VIEW : 

:skip_roadmap

REM *** привелегии карточек ***
SET /P TICKET_ADMIN=TICKET_ADMIN : 
IF /I %TICKET_ADMIN%==y GOTO skip_ticket

SET /P TICKET_APPEND=TICKET_APPEND : 
SET /P TICKET_CHGPROP=TICKET_CHGPROP : 
SET /P TICKET_CREATE=TICKET_CREATE : 
SET /P TICKET_MODIFY=TICKET_MODIFY : 
SET /P TICKET_VIEW=TICKET_VIEW : 

:skip_ticket

REM *** привелегии вики ***
SET /P WIKI_ADMIN=WIKI_ADMIN : 
IF /I %WIKI_ADMIN%==y GOTO skip_wiki

SET /P WIKI_CREATE=WIKI_CREATE : 
SET /P WIKI_DELETE=WIKI_DELETE : 
SET /P WIKI_MODIFY=WIKI_MODIFY : 
SET /P WIKI_VIEW=WIKI_VIEW : 

:skip_wiki

REM *** сброс всех привелегий ***
:reset_permissions

%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TRAC_ADMIN
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% BROWSER_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% CHANGESET_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% CONFIG_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% FILE_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% LOG_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% SEARCH_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TIMELINE_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% MILESTONE_ADMIN
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% MILESTONE_CREATE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% MILESTONE_DELETE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% MILESTONE_MODIFY
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% MILESTONE_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% REPORT_ADMIN
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% REPORT_CREATE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% REPORT_DELETE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% REPORT_MODIFY
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% REPORT_SQL_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% REPORT_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% ROADMAP_ADMIN
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% ROADMAP_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TICKET_ADMIN
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TICKET_APPEND
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TICKET_CHGPROP
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TICKET_CREATE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TICKET_MODIFY
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% TICKET_VIEW
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% WIKI_ADMIN
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% WIKI_CREATE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% WIKI_DELETE
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% WIKI_MODIFY
%TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% WIKI_VIEW

REM *** установка требуемых привилегий ***
:set_permissions

IF /I %TRACADMIN%==y        %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TRAC_ADMIN
IF /I %BROWSER_VIEW%==y     %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% BROWSER_VIEW
IF /I %CHANGESET_VIEW%==y   %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% CHANGESET_VIEW
IF /I %CONFIG_VIEW%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% CONFIG_VIEW
IF /I %FILE_VIEW%==y        %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% FILE_VIEW
IF /I %LOG_VIEW%==y         %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% LOG_VIEW
IF /I %SEARCH_VIEW%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% SEARCH_VIEW
IF /I %TIMELINE_VIEW%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TIMELINE_VIEW
IF /I %MILESTONE_ADMIN%==y  %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% MILESTONE_ADMIN
IF /I %MILESTONE_CREATE%==y %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% MILESTONE_CREATE
IF /I %MILESTONE_DELETE%==y %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% MILESTONE_DELETE
IF /I %MILESTONE_MODIFY%==y %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% MILESTONE_MODIFY
IF /I %MILESTONE_VIEW%==y   %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% MILESTONE_VIEW
IF /I %REPORT_ADMIN%==y     %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% REPORT_ADMIN
IF /I %REPORT_CREATE%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% REPORT_CREATE
IF /I %REPORT_DELETE%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% REPORT_DELETE
IF /I %REPORT_MODIFY%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% REPORT_MODIFY
IF /I %REPORT_SQL_VIEW%==y  %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% REPORT_SQL_VIEW
IF /I %REPORT_VIEW%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% REPORT_VIEW
IF /I %ROADMAP_ADMIN%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% ROADMAP_ADMIN
IF /I %ROADMAP_VIEW%==y     %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% ROADMAP_VIEW
IF /I %TICKET_ADMIN%==y     %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TICKET_ADMIN
IF /I %TICKET_APPEND%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TICKET_APPEND
IF /I %TICKET_CHGPROP%==y   %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TICKET_CHGPROP
IF /I %TICKET_CREATE%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TICKET_CREATE
IF /I %TICKET_MODIFY%==y    %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TICKET_MODIFY
IF /I %TICKET_VIEW%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% TICKET_VIEW
IF /I %WIKI_ADMIN%==y       %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% WIKI_ADMIN
IF /I %WIKI_CREATE%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% WIKI_CREATE
IF /I %WIKI_DELETE%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% WIKI_DELETE
IF /I %WIKI_MODIFY%==y      %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% WIKI_MODIFY
IF /I %WIKI_VIEW%==y        %TRAC_ADMIN% %TRAC_PATH% permission add %USER_NAME% WIKI_VIEW



set_permissions_group.bat — cкрипт добавления/удаления пользователя в/из группу(ы)

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** запрос имени пользователя/группы ***
SET /P USER_NAME=User name : 
REM *** запрос операции добавления ***
SET /P ADD_TO_GROUP=Add to group : 
REM *** запрос операции удаления ***
SET /P REMOVE_FROM_GROUP=Remove from group : 

REM *** выполнение команд ***
IF DEFINED ADD_TO_GROUP      %TRAC_ADMIN% %TRAC_PATH% permission add    %USER_NAME% %ADD_TO_GROUP%
IF DEFINED REMOVE_FROM_GROUP %TRAC_ADMIN% %TRAC_PATH% permission remove %USER_NAME% %REMOVE_FROM_GROUP%



Итак, предположим, что вы хотите для начала лишить пользователя anonymous всех прав. Для этого, запустите скрипт set_permissions.bat, в качестве имени пользователя (User name) введите anonymous и ответьте Y на запрос сброса всех привелегий (Reset All permissions). Результат можете проверить запустив скрипт list_permissions.bat.

Для ознакомления и проведения экспериментов со всеми видами привилегий (с полным списком привилегий и их значением можно ознакомиться по адресу http://projects.edgewall.com/trac/wiki/TracPermissions). Поэкспериментируйте с пользователем anonymous, назначая ему различные привилегии и проверяя результат в браузере.

Теперь создадим группу admins и назначим ей максимальные права. Для этого, запустите скрипт set_permissions.bat, в качестве имени пользователя (User name) введите admins, на запрос о сбросе всех привилегий (Reset All permissions) ответьте N, на запрос TRAC_ADMIN ответьте Y. Результат можете проверить запустив скрипт list_permissions.bat.

Теперь добавим вас к группе администраторов (admins). Предположим, что вы будете работать под ником vasya. Для этого, запустите скрипт set_permissions_group.bat, в качестве имени пользователя введите vasya, на запрос добавления в группу (Add to group) введите admins, на запрос удаления из группы введите пустую строку. Результат можете проверить запустив скрипт list_permissions.bat.

Надеюсь, что общий принцип назначения и удаления прав, и управления группами пользователей понятен.

Теперь необходимо добавить, собственно, пользователя vasya к проекту trac и назначить ему пароль. Для этого опять придется написать парочку скриптов.


generate_password.py — скрипт для генерации хэша MD5 (взято отсюда)


from optparse import OptionParser
import md5

# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
                  help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
                  help="the password to use")
(options, args) = parser.parse_args()

# check options
if (options.username is None) or (options.password is None):
   parser.error("You must supply both the username and password")
   
# Generate the string to enter into the htdigest file
realm = 'trac'
kd = lambda x: md5.md5(':'.join(x)).hexdigest()
print ':'.join((options.username, realm, kd([options.username, realm, options.password])))



generate_password.bat — скрипт для генерации строки в файле логинов/паролей

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** запрос имени пользователя и пароля ***
ECHO.
SET /P USER_NAME=User Name : 
SET /P PASSWORD=Password  : 
ECHO.

REM *** выполнение команды ***
%PYTHON_EXE% generate_password.py -u %USER_NAME% -p %PASSWORD%



Для хранения логинов и паролей создадим простой текстовый файл. Имя файла может быть любым и находится он может в любом месте. Для примера, назовем его passwd и поместим в директорию проекта trac (в нашем примере, d:\trac).

Для генерации строки авторизации, запустите скрипт generate_password.bat, на запрос имени пользователя (User name) введите vasya, на запрос пароля (Password) введите, требуемый пароль (пусть будет 123). На выходе получаем строку:

vasya:trac:85cb23000cf7902dd598bef2847d3ac7


Занесите эту строку в ранее созданый файл passwd. Теперь для включения возможности авторизации, измените скрипт run_tracd.bat следующим образом:


run_tracd.bat — запуск standalone trac с поддержкой авторизации

REM *** установка переменных окружения ***
CALL enviroment.bat

REM *** запуск команды ***
%TRACD% --auth *,%TRAC_PATH%\passwd,trac %TRAC_PATH%



Запустите скрипт run_tracd.bat и проверьте результат, попытавшись авторизоваться в системе по клику по ссылке login/вход.

Теперь, когда все готово к работе, избавимся от консоли сервера tracd. Для этого можно воспользоваться либо одной из специализированных программ, запускающих любое приложение как службу, однако, я выбрал другой вариант. Поскольку добавлять пользователей, изменять права, делать бэкапы можно при работающем сервере, то я решил просто добавить задание, которое бы выполнялось при загрузке компьютера и запускало файл run_tracd.bat — в результате, после перезагрузки, сервер работает и не мешает.

Теперь у вас имеется рабочий trac, с которым можно проводить различные эксперименты, используя его же для занесения результатов. Надеюсь, что дальнейшее освоение будет более простым



Благодарности:

Евгений Охотников
Dmitriy Popkov
Зверёк Харьковский
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.