Trac - быстрый старт

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 04:16, 6 апреля 2010 (править)
109.233.224.22 (Обсуждение)
(Общие сведения)
← К предыдущему изменению
Версия 19:40, 31 мая 2010 (править) (отменить)
77.239.235.129 (Обсуждение)
(Содержимое страницы заменено на «http://1gb.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D...»)
К следующему изменению →
Строка 1: Строка 1:
-== Общие сведения ==+http://1gb.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
- +
-'''Trac''' - бесплатное программное обеспечение написанное на языке [http://www.python.org/ Python], представляющие из себя прекрасный инструмент для автоматизированного управления проектами и системой отслеживания ошибок (bug tracker). Имеет простой wiki-подобный web-интерфейс.+
- +
-На хостинге [http://www.1gb.ru 1Gb.ru] trac можно запустить в режиме <code>UNIX/Apache/FastCGI</code>, для этого убедитесь в разделе личного кабинета <code>/Управление сайтами и серверами/</code> что у вас правильно выбран тип сервера.+
- +
-== Подготовка окружения ==+
-Создаем в корне домашнего каталога файл <code>.pydistutils.cfg</code> для настройки путей инсталляции модулей:+
- [install]+
- prefix = $HOME/python+
- +
- [easy_install]+
- install_dir = $HOME/python/lib64/python2.5/site-packages+
-* Для настройки переменных <code>PATH</code>, <code>PYTHONPATH</code> и <code>alias</code>'ов добавьте строки в ваш <code>~/.bashrc</code>:+
- export PATH=$PATH:$HOME/python/bin:$HOME/python/lib64/python2.5/site-packages+
- export PYTHONPATH=$PYTHONPATH:$HOME/python/lib64/python2.5/site-packages+
- alias easy_install=$HOME/python/lib64/python2.5/site-packages/easy_install+
- +
-* Выполняем команду:+
- source ~/.bashrc+
-для того, чтобы сделанные изменения вступили в силу.+
- +
-* Создаем различные каталоги:+
- mkdir -p ~/src ~/python/lib64/python2.5/site-packages ~/trac ~/svn ~/http/chrome+
-* Симлинк:+
- cd ~/python; ln -s lib64 lib; cd+
- +
-== Установка компонентов ==+
- +
-* Установим свой <code>easy_install</code>:+
- $ cd ~/src && wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg#md5=64c94f3bf7a72a13ec83e0b24f2749b2+
- $ /bin/bash ./setuptools-0.6c11-py2.5.egg+
- +
-* Устанавливаем модуль flup, для работы Trac в FastCGI режиме:+
- $ easy_install flup+
-* Ставим trac:+
- $ easy_install trac+
-* Также сразу ставим модуль WebAdmin для настройки trac через web-интерфейс:+
- $ easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/+
- +
-== Настройка trac ==+
-=== Создание проекта ===+
-* Создаем проект под именем <code>demo_trac</code>:+
- $ trac-admin ~/trac/demo_trac initenv+
-Рекомендую использовать базу данных MySQL, строка подключения для нее будет выглядить так:+
- mysql://db_name:db_password@db_host:3306/db_name+
-Тип репозитория - <code>svn</code>. Остальные настройки проекта оставляем по-умолчанию, из потом можно будет изменить через файл <code>trac.ini</code>+
- +
-=== Настройка FastCGI диспетчера и файла <code>.htaccess</code> ===+
-* Переходим в каталог ~/http и делаем настройку FastCGI диспетчера и правил редиректа mod_rewrite:+
-Файл <code>index.fcgi</code>+
- +
- #!/usr/bin/python+
- +
- import sys, os, site+
- +
- # Add a custom Python path.+
- PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \+
- '../python/lib64/python2.5/site-packages'))+
- sys.path.insert (0, PYTHON_CUSTOM_PATH)+
- site.addsitedir (PYTHON_CUSTOM_PATH)+
- +
- # Add a custom trac env path.+
- MY_TRAC_ENV_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \+
- '../trac/'''demo_trac''''))+
- +
- os.environ['TRAC_ENV'] = MY_TRAC_ENV_PATH+
- +
- from trac.web.main import dispatch_request+
- from flup.server.fcgi import WSGIServer+
- +
- WSGIServer(dispatch_request).run()+
- +
-Для того, чтобы у нас заработала авторизация, обязательно скопируйте файл <code>index.fcgi</code> в файл <code>admin.fcgi</code>:+
- $ cd ~/http && cp index.fcgi admin.fcgi+
- +
-Файл <code>.htaccess</code>+
- DirectoryIndex index.fcgi+
- +
- Options +FollowSymlinks+
- +
- AddHandler fcgid-script .fcgi+
- +
- RewriteEngine On+
- RewriteRule ^(index.fcgi/chrome/site/)(.*)$ ./chrome/site/$2+
- RewriteCond %{REQUEST_FILENAME} !-f+
- RewriteCond %{REQUEST_FILENAME} !-d+
- RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]+
- +
- <Files "admin.fcgi">+
- AuthType Basic+
- AuthUserFile /home/virtwww/'''имя_пользователя'''/trac/'''demo_trac'''/conf/trac.htpasswd+
- AuthName "Trac Sign In"+
- require valid-user+
- </Files>+
- +
- RewriteRule ^index\.fcgi/login$ /admin.fcgi/login+
- RewriteRule ^admin\.fcgi/logout$ /index.fcgi/logout+
- +
-Для работы статики создаем симлинки:+
- $ cd ~/http/chrome && ln -s ~/python/lib64/python2.5/site-packages/Trac-*.egg/trac/htdocs common+
- $ cd ~/http/chrome && ln -s ~/trac/'''название_вашего_проекта'''/htdocs site+
- +
-=== Добавления пользователя admin и настройка авторизации ===+
- +
-Здесь важно понимать, что при использовании связки SSH-SVN-Trac настройка авторизации происходит для каждого компонента в отдельности, т.е. один пользователь может работать только по SSH (с репозиторием SVN), другой по протоколу SVN, третий только с интерфейсом Trac, поэтому будьте внимательны, если вы хотите чтобы один и тот же пользователь работал со всеми интерфейсами.+
- +
-* Добавляем администратора в trac:+
- $ trac-admin ~/trac/demo_trac+
- /trac/demo_trac]> permission add любое_имя_пользователя TRAC_ADMIN+
-* Назначаем пароль:+
- $ cd ~/trac/demo_trac/conf/ && /usr/local/sbin/htpasswd -c trac.htpasswd любое_имя_пользователя+
- +
-таким образом данный пользователь будет являться администратором для системы Trac, например, он сможет через web-интерфейс Trac'а добавлять новых пользователей, изменить настройки Trac и т.п.+
- +
-----+
-'''''Примечание.''''' Если вы хотите добавить еще одного пользователя, то опцию <code>-c</code> указывать не нужно.+
-----+
- +
-О добавлении пользователей SVN, SSH речь пойдет ниже.+
- +
-=== trac.ini ===+
-* Включем WebAdmin, в конец файла добавляем строки:+
- [components]+
- webadmin.* = enabled+
- +
-Остальные опции на ваше усмотрение.+
- +
-=== Патч для создания правильных URI ===+
-* Для создания "красивых" URI патчим файл <code>~/python/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/api.py</code> (ваш путь может немного отличаться).+
-Строку:+
- base_path = property(fget=lambda self: self.environ.get('SCRIPT_NAME', ''),+
-меняем на:+
- base_path = property(fget=lambda self: os.path.dirname(self.environ.get('SCRIPT_NAME', '')),+
- +
-* Если вы планируете использовать Trac не из корня сайта, а из какого-то подкаталога, например, из <code>~/http/trac</code>, то в файле <code>~/python/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/api.py</code>, строку:+
- if not req.path_info or req.path_info == '/':+
-меняем на:+
- if not req.path_info or req.path_info == '/' or req.path_info == '/trac/':+
- +
-Это для того, чтобы при обращении к <code><nowiki>http://example.com/trac</nowiki></code> не происходило лишнего редиректа на <code><nowiki>http://example.com/trac/trac/</nowiki></code>, если кто-то знает другой способ, сообщите мне.+
- +
-== Настройка SVN ==+
-Обратитесь пожалуйста к этой статье: [[SVN - быстрый старт (профессиональная версия)]]+
- +
-=== Интеграция с trac ===+
-* В файле <code>~/trac/название_проекта/conf/trac.ini</code> указываем путь к нашему репозиторию:+
- repository_dir = /home/virtwww/имя_пользователя/svn/название_репозитория+
- +
-== Демо trac ==+
-* http://test-l7-trac.1gb.ru/ - демо версия trac на хостинге 1Gb.ru+
- +
-== См. также ==+
-* [[Юникс шелл]]+
-* [[SVN - быстрый старт (профессиональная версия)]]+
- +
-== Ссылки ==+
-* [http://trac.edgewall.org/wiki/TracGuide The Trac User and Administration Guide] (англ.) - документация по Trac на сайте разработчиков.+
-* [http://trac.edgewall.org/wiki/TranslationRu/TracGuide The Trac User and Administration Guide] (рус.) - документация по Trac на сайте разработчиков (частичный перевод).+
-* [http://www.trac-hacks.org/ Trac-Hacks] (англ.) - популярный ресурс по Trac с большим количеством плагинов и модулей.+
-[[Категория:Программирование]]+
-[[Категория:Python]]+

Версия 19:40, 31 мая 2010

http://1gb.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0

Личные инструменты