http://www.1gb.ua/wiki/index.php?title=Trac_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82&action=history&feed=atomTrac - быстрый старт - История изменений2024-03-28T13:35:40ZИстория изменений этой страницы в викиMediaWiki 1.10.1http://www.1gb.ua/wiki/index.php?title=Trac_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82&diff=4940&oldid=prevChapay в 20:51, 26 апреля 20142014-04-26T20:51:24Z<p></p>
<table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;">
<tr>
<td colspan='2' width='50%' align='center' style="background-color: white;">← Предыдущая</td>
<td colspan='2' width='50%' align='center' style="background-color: white;">Версия 20:51, 26 апреля 2014</td>
</tr>
<tr><td colspan="2" align="left"><strong>Строка 17:</strong></td>
<td colspan="2" align="left"><strong>Строка 17:</strong></td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;">'''Trac''' - бесплатное программное обеспечение написанное на языке [http://www.python.org/ Python], представляющие из себя прекрасный инструмент для автоматизированного управления проектами и системой отслеживания ошибок (bug tracker). Имеет простой wiki-подобный web-интерфейс.</td><td> </td><td style="background: #eee; font-size: smaller;">'''Trac''' - бесплатное программное обеспечение написанное на языке [http://www.python.org/ Python], представляющие из себя прекрасный инструмент для автоматизированного управления проектами и системой отслеживания ошибок (bug tracker). Имеет простой wiki-подобный web-интерфейс.</td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr>
<tr><td>-</td><td style="background: #ffa; font-size: smaller;">На хостинге [http://www.1gb.<del style="color: red; font-weight: bold; text-decoration: none;">ru </del>1Gb.<del style="color: red; font-weight: bold; text-decoration: none;">ru</del>] trac можно запустить в режиме <code>UNIX/Apache/FastCGI</code>, для этого убедитесь, что в разделе личного кабинета <code>/Управление сайтами и серверами/</code> у вас правильно выбран тип сервера.</td><td>+</td><td style="background: #cfc; font-size: smaller;">На хостинге [http://www.1gb.<ins style="color: red; font-weight: bold; text-decoration: none;">ua </ins>1Gb.<ins style="color: red; font-weight: bold; text-decoration: none;">ua</ins>] trac можно запустить в режиме <code>UNIX/Apache/FastCGI</code>, для этого убедитесь, что в разделе личного кабинета <code>/Управление сайтами и серверами/</code> у вас правильно выбран тип сервера.</td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;">== Подготовка окружения ==</td><td> </td><td style="background: #eee; font-size: smaller;">== Подготовка окружения ==</td></tr>
<tr><td>-</td><td style="background: #ffa; font-size: smaller;">Данный этап установки ничем не отличается от инструкции по установке Django (Trac также работает только со 2-ой веткой python), поэтому обратитесь к статье [http://www.1gb.<del style="color: red; font-weight: bold; text-decoration: none;">ru</del>/wiki/index.php?title=Django_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82#.D0.9F.D0.BE.D0.B4.D0.B3.D0.BE.D1.82.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F Django#Подготовка окружения] и выполните пункты 1 - 7, '''за исключением пункта 2'''.</td><td>+</td><td style="background: #cfc; font-size: smaller;">Данный этап установки ничем не отличается от инструкции по установке Django (Trac также работает только со 2-ой веткой python), поэтому обратитесь к статье [http://www.1gb.<ins style="color: red; font-weight: bold; text-decoration: none;">ua</ins>/wiki/index.php?title=Django_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82#.D0.9F.D0.BE.D0.B4.D0.B3.D0.BE.D1.82.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F Django#Подготовка окружения] и выполните пункты 1 - 7, '''за исключением пункта 2'''.</td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;">Вместо пункта 2 из инструкции "установка Django" выполните такую команду:</td><td> </td><td style="background: #eee; font-size: smaller;">Вместо пункта 2 из инструкции "установка Django" выполните такую команду:</td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;"> $ mkdir -p ~/src ~/python/bin ~/python/lib64/${PYTHON_VERSION}/site-packages ~/trac ~/svn ~/http/chrome</td><td> </td><td style="background: #eee; font-size: smaller;"> $ mkdir -p ~/src ~/python/bin ~/python/lib64/${PYTHON_VERSION}/site-packages ~/trac ~/svn ~/http/chrome</td></tr>
<tr><td colspan="2" align="left"><strong>Строка 172:</strong></td>
<td colspan="2" align="left"><strong>Строка 172:</strong></td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;">== Демо trac ==</td><td> </td><td style="background: #eee; font-size: smaller;">== Демо trac ==</td></tr>
<tr><td>-</td><td style="background: #ffa; font-size: smaller;">* http://test-l25-trac.1gb.ru/ - демо версия trac на хостинге <del style="color: red; font-weight: bold; text-decoration: none;">1Gb.ru</del></td><td>+</td><td style="background: #cfc; font-size: smaller;">* http://test-l25-trac.1gb.ru/ - демо версия trac на хостинге</td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr>
<tr><td> </td><td style="background: #eee; font-size: smaller;">== См. также ==</td><td> </td><td style="background: #eee; font-size: smaller;">== См. также ==</td></tr>
</table>Chapayhttp://www.1gb.ua/wiki/index.php?title=Trac_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82&diff=4939&oldid=prevRenton: /* Установка компонентов */2013-08-28T17:12:18Z<p><span class="autocomment">Установка компонентов</span></p>
<p><b>Новая статья</b></p><div><br /><br />
<br /><br />
<table cellspacing="0"><br />
<tr style="background: #F7D9D9"><br />
<td width="850px" style="vertical-align:top; border-top: 1px solid #D63838; border-left: 1px solid #D63838; border-bottom: 1px solid #D63838; border-right: 1px solid #D63838; padding: 1em;"><br />
<span style="font-size: 16px; font-weight: bold;">Данная статья предназначена для технических специалистов.</span><br />
<p>Вы должны знать основы программирования, уметь пользоваться консольными программами и официальной документацией от разработчиков.</p><br />
<br />
В связи с тем, что на сервере могут обновиться версии программ, измениться конфигурация приложений, документация в статье может не соответствовать действительности, поэтому вы должны быть готовы разобраться с возможными проблемами <b>самостоятельно</b> или с помощью специалистов из платной поддержки http://1gbsup.ru/paidsu/, обычная поддержка хостинга <b>не оказывает</b> консультации по установке и отладке скриптов.<br />
</td><br />
</tr><br />
</table><br />
<br /><br />
<br /><br />
== Общие сведения ==<br />
<br />
'''Trac''' - бесплатное программное обеспечение написанное на языке [http://www.python.org/ Python], представляющие из себя прекрасный инструмент для автоматизированного управления проектами и системой отслеживания ошибок (bug tracker). Имеет простой wiki-подобный web-интерфейс.<br />
<br />
На хостинге [http://www.1gb.ru 1Gb.ru] trac можно запустить в режиме <code>UNIX/Apache/FastCGI</code>, для этого убедитесь, что в разделе личного кабинета <code>/Управление сайтами и серверами/</code> у вас правильно выбран тип сервера.<br />
<br />
== Подготовка окружения ==<br />
Данный этап установки ничем не отличается от инструкции по установке Django (Trac также работает только со 2-ой веткой python), поэтому обратитесь к статье [http://www.1gb.ru/wiki/index.php?title=Django_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82#.D0.9F.D0.BE.D0.B4.D0.B3.D0.BE.D1.82.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F Django#Подготовка окружения] и выполните пункты 1 - 7, '''за исключением пункта 2'''.<br />
Вместо пункта 2 из инструкции "установка Django" выполните такую команду:<br />
$ mkdir -p ~/src ~/python/bin ~/python/lib64/${PYTHON_VERSION}/site-packages ~/trac ~/svn ~/http/chrome<br />
<br />
== Установка компонентов ==<br />
<br />
'''1.''' С сайта http://pypi.python.org/pypi/setuptools берем <code>setuptools</code> соответствующий нашей версии python. Либо скачиваем нужную версию следующей командой:<br />
<br />
$ cd ~/src && <nowiki>lynx -source "https://pypi.python.org/pypi/setuptools/0.6c11" \<br />
| awk "/py$(echo $PYTHON_VERSION | tr -d python).egg#md5/ {url = gensub(/.*<a href=\"(.*)\">s.*\.egg<.*/,\"\\\\1\",\"\"); \<br />
f = gensub(/.*\/([\.a-z\-0-9]+)#.*/,\"\\\\1\",\"\",url); system (\"wget -O \"f\" \"url)}"</nowiki><br />
и устанавливаем:<br />
$ /bin/bash ./setuptools*.egg<br />
<br />
'''2.''' Устанавливаем модуль flup, для работы Trac в FastCGI режиме:<br />
$ easy_install flup<br />
если установка заканчивается так:<br />
error: None<br />
то устанавливаем flup по прямой ссылке:<br />
$ easy_install <nowiki>"http://pypi.python.org/packages/source/f/flup/flup-1.0.2.tar.gz#md5=24dad7edc5ada31dddd49456ee8d5254"</nowiki><br />
'''3.''' Ставим trac:<br />
$ easy_install -Z trac<br />
<br />
== Настройка trac ==<br />
=== Создание проекта ===<br />
По умолчанию Trac использует базу SQLite, если планируете использовать базу данных MySQL, надо установить модуль mysql-python:<br />
$ easy_install mysql-python<br />
и поменять кодировку базы данных:<br />
$ DB='''DB_NAME'''; echo "ALTER DATABASE $DB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci" | mysql -h'''DB_HOST''' -u$DB -p'''DB_PASSWORD'''<br />
<br />
'''1.''' Создаем проект под именем <code>demo_trac</code>:<br />
$ trac-admin ~/trac/demo_trac initenv<br />
Для базы данных MySQL строка подключения будет выглядить так:<br />
mysql://'''DB_NAME''':'''DB_PASSWORD'''@'''DB_HOST''':3306/'''DB_NAME'''<br />
Все настройки проекта оставляем по умолчанию, их потом можно будет изменить в файле <code>trac.ini</code><br />
<br />
=== Настройка FastCGI диспетчера и файла <code>.htaccess</code> ===<br />
'''1.''' Переходим в каталог ~/http и делаем настройку FastCGI диспетчера и правил редиректа mod_rewrite:<br />
Файл <code>index.fcgi</code><br />
$ cat > ~/http/index.fcgi <<END<br />
#!/usr/bin/${PYTHON_VERSION}<br />
<br />
import sys, os, site<br />
<br />
# Add a custom Python path.<br />
PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \\<br />
'../python/lib64/${PYTHON_VERSION}/site-packages'))<br />
sys.path.insert (0, PYTHON_CUSTOM_PATH)<br />
site.addsitedir (PYTHON_CUSTOM_PATH)<br />
<br />
# Add a custom trac env path.<br />
MY_TRAC_ENV_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \\<br />
'../trac/'''demo_trac''''))<br />
<br />
os.environ['TRAC_ENV'] = MY_TRAC_ENV_PATH<br />
<br />
from trac.web.main import dispatch_request<br />
from flup.server.fcgi import WSGIServer<br />
<br />
WSGIServer(dispatch_request).run()<br />
END<br />
<br />
Для того, чтобы у нас заработала авторизация, обязательно скопируйте файл <code>index.fcgi</code> в файл <code>admin.fcgi</code>:<br />
$ cd ~/http && cp index.fcgi admin.fcgi<br />
и даем права доступа на исполнение:<br />
$ cd ~/http && chmod 755 *.fcgi<br />
<br />
'''2.''' Файл <code>.htaccess</code> (секция Files не нужна, если вы хотите использовать более продвинутую (и удобную) авторизацию из плагинов (см.[http://trac.edgewall.org/wiki/PluginList Официальные плагины]))<br />
$ cat > ~/http/.htaccess <<END<br />
DirectoryIndex index.fcgi<br />
<br />
Options +FollowSymlinks<br />
<br />
AddHandler fcgid-script .fcgi<br />
<br />
RewriteEngine On<br />
RewriteRule ^(index.fcgi/chrome/site/)(.*)$ ./chrome/site/\$2<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule ^(.*)$ index.fcgi/\$1 [QSA,L]<br />
<br />
<Files "admin.fcgi"><br />
AuthType Basic<br />
AuthUserFile /home/virtwww/$(whoami)/trac/'''demo_trac'''/conf/trac.htpasswd<br />
AuthName "Trac Sign In"<br />
require valid-user<br />
</Files><br />
<br />
RewriteRule ^index\.fcgi/login$ /admin.fcgi/login<br />
RewriteRule ^admin\.fcgi/logout$ /index.fcgi/logout<br />
END<br />
<br />
'''3.''' Копируем статический контент в свой проект:<br />
$ trac-admin ~/trac/demo_trac deploy ~/trac/demo_trac/<br />
<br />
'''4.''' Чтобы статические документы отдавались сразу веб-сервером, а не обрабатывались FastCGI приложением, делаем симлинки:<br />
$ cd ~/http/chrome && ln -sfv ~/trac/demo_trac/htdocs/common<br />
$ cd ~/http/chrome && ln -sfv ~/trac/demo_trac/htdocs/site<br />
<br />
=== Добавления пользователя admin и настройка авторизации ===<br />
<br />
Здесь важно понимать, что при использовании связки SSH-SVN-Trac настройка авторизации происходит для каждого компонента в отдельности, т.е. один пользователь может работать только по SSH (с репозиторием SVN), другой по протоколу SVN, третий только с интерфейсом Trac, поэтому будьте внимательны, если вы хотите чтобы один и тот же пользователь работал со всеми интерфейсами.<br />
<br />
'''1.''' Добавляем администратора в trac:<br />
$ trac-admin ~/trac/demo_trac<br />
/trac/demo_trac]> permission add любое_имя_пользователя TRAC_ADMIN<br />
'''2.''' Назначаем пароль:<br />
$ cd ~/trac/demo_trac/conf/ && /usr/local/sbin/htpasswd -c trac.htpasswd любое_имя_пользователя<br />
<br />
таким образом данный пользователь будет являться администратором для системы Trac, например, он сможет через web-интерфейс Trac'а добавлять новых пользователей, изменять настройки Trac и т.п.<br />
<br />
----<br />
'''''Примечание.''''' Если вы хотите добавить еще одного пользователя, то опцию <code>-c</code> указывать не нужно.<br />
----<br />
<br />
О добавлении пользователей SVN, SSH речь пойдет ниже.<br />
<br />
=== Патч для создания правильных URI ===<br />
'''1.''' Для создания "красивых" URI патчим файл <code>~/python/lib/python'''ВАША_ВЕРСИЯ'''/site-packages/Trac-0.11.5-py2.5.egg/trac/web/api.py</code> (ваш путь может немного отличаться).<br />
<br />
* '''для версии Trac 1.0'''<br /><br />
Не требуется.<br />
<br />
* '''для версии Trac 0.11'''<br />
<br />
Строку:<br />
base_path = property(fget=lambda self: self.environ.get('SCRIPT_NAME', ),<br />
меняем на:<br />
base_path = property(fget=lambda self: os.path.dirname(self.environ.get('SCRIPT_NAME', )),<br />
<br />
* '''для версии Trac 0.12'''<br />
<br />
Строку:<br />
return self.environ.get('SCRIPT_NAME', '')<br />
меняем на:<br />
return os.path.dirname(self.environ.get('SCRIPT_NAME', ''))<br />
<br />
'''2.''' Если вы планируете использовать Trac не из корня сайта, а из какого-то подкаталога, например, из <code>~/http/trac</code>, то в файле <code>~/python/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/api.py</code>, строку:<br />
if not req.path_info or req.path_info == '/':<br />
меняем на:<br />
if not req.path_info or req.path_info == '/' or req.path_info == '/trac/':<br />
<br />
Это для того, чтобы при обращении к <code><nowiki>http://example.com/trac</nowiki></code> не происходило лишнего редиректа на <code><nowiki>http://example.com/trac/trac/</nowiki></code>, если кто-то знает другой способ, сообщите мне.<br />
<br />
== Настройка SVN ==<br />
Обратитесь пожалуйста к этой статье: [[SVN - быстрый старт (профессиональная версия)]]<br />
<br />
=== Интеграция с trac ===<br />
* В файле <code>~/trac/название_проекта/conf/trac.ini</code> указываем путь к нашему репозиторию:<br />
repository_dir = /home/virtwww/имя_пользователя/svn/название_репозитория<br />
<br />
== Демо trac ==<br />
* http://test-l25-trac.1gb.ru/ - демо версия trac на хостинге 1Gb.ru<br />
<br />
== См. также ==<br />
* [[Юникс шелл]]<br />
* [[SVN - быстрый старт (профессиональная версия)]]<br />
<br />
== Ссылки ==<br />
* [http://trac.edgewall.org/wiki/TracGuide The Trac User and Administration Guide] (англ.) - документация по Trac на сайте разработчиков.<br />
* [http://trac.edgewall.org/wiki/TranslationRu/TracGuide The Trac User and Administration Guide] (рус.) - документация по Trac на сайте разработчиков (частичный перевод).<br />
* [http://www.trac-hacks.org/ Trac-Hacks] (англ.) - популярный ресурс по Trac с большим количеством плагинов и модулей.<br />
[[Категория:Программирование]]<br />
[[Категория:Python]]</div>Renton