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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 13:47, 9 ноября 2009 (править)
Renton (Обсуждение | вклад)
(Новая: == Общие сведения == '''Trac''' - бесплатное программное обеспечение написанное на языке [http://www.python.org/ Python], ...)
← К предыдущему изменению
Версия 17:57, 9 ноября 2009 (править) (отменить)
Renton (Обсуждение | вклад)
(Настройка trac)
К следующему изменению →
Строка 39: Строка 39:
== Настройка trac == == Настройка trac ==
-* Создаем проект под именем <code>demo_trac</code>+* Создаем проект под именем <code>demo_trac</code>:
-$ trac-admin ~/trac/demo_trac initenv+ $ trac-admin ~/trac/demo_trac initenv
 +Рекомендую использовать базу данных MySQL, строка подключения для нее будет выглядить так:
 + mysql://db_name:db_password@db_host:3306/db_name
 +Остальные настройки проекта оставляем либо по-умолчанию, либо игнорируем.
 + 
 +* Переходим в каталог ~/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>.htaccess</code>
 + DirectoryIndex index.fcgi
 +
 + Options +FollowSymlinks
 +
 + AddHandler fcgid-script .fcgi
 +
 + RewriteEngine On
 + RewriteCond %{REQUEST_FILENAME} !-f
 + RewriteCond %{REQUEST_FILENAME} !-d
 + RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]
 + 
 +* Для создания "красивых" 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', '')),
 + 
 +* В личном кабинете в разделе /Хостинг Subversion/ создаем репозиторий SVN.
 + 
 + easy_install elementtree
 + easy_install python-openid

Версия 17:57, 9 ноября 2009

Содержание

Общие сведения

Trac - бесплатное программное обеспечение написанное на языке Python, представляющие из себя прекрасный инстумент для автоматизированного управления проектами и системой отлеживания ошибок (bug tracker). Имеет простой wiki-подобный web-интерфейс.

На хостинге 1Gb.ru trac можно запустить в режиме UNIX/Apache/FastCGI, для этого убедитесь в разделе личного кабинета /Управление сайтами и серверами/ что у вас правильно выбран тип сервера.

Подготовка окружения

Создаем в корне домашнего каталога файл .pydistutils.cfg для настройки путей инсталляции модулей:
[install]
prefix = $HOME/python

[easy_install]
install_dir = $HOME/python/lib64/python2.5/site-packages
  • Для настройки переменных PATH, PYTHONPATH и alias'ов добавьте строки:
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

в ваш ~/.bashrc

  • Выполняем команду:
source ~/.bashrc

для того, чтобы сделанные изменения вступили в силу.

  • Создаем различные каталоги:
mkdir -p ~/src ~/python/lib64/python2.5/site-packages ~/trac
  • Симлинк:
cd ~/python; ln -s lib64 lib; cd

Установка компонентов

  • Установим свой easy_install:
$ 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

Настройка trac

  • Создаем проект под именем demo_trac:
$ trac-admin ~/trac/demo_trac initenv

Рекомендую использовать базу данных MySQL, строка подключения для нее будет выглядить так:

mysql://db_name:db_password@db_host:3306/db_name

Остальные настройки проекта оставляем либо по-умолчанию, либо игнорируем.

  • Переходим в каталог ~/http и делаем настройку FastCGI диспетчера и правил редиректа mod_rewrite:

Файл index.fcgi

#!/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()

Файл .htaccess

DirectoryIndex index.fcgi

Options +FollowSymlinks

AddHandler fcgid-script .fcgi

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]
  • Для создания "красивых" URI патчим файл ~/python/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/api.py (ваш путь может немного отличаться).

Строку:

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', )),
  • В личном кабинете в разделе /Хостинг Subversion/ создаем репозиторий SVN.
easy_install elementtree
easy_install python-openid
Личные инструменты