20 июля 2009 г. Apache Hooks MySQL Trac Subversion Python Svn Wiki FreeBSD

Установка и настройка Trac на FreeBSD

trac

Trac — это инструмент управления проектами и отслеживания ошибок в программном обеспечении. Он использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами.

Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion, а так же, через плагины, к Mercurial, git, Bazaar и другим. Trac написан на языке программирования python и в настоящее время распространяется по модифицированной лицензии BSD.

http://ru.wikipedia.org/wiki/Trac

Возможности

  • Возможность просмотра всех изменений в svn и trac-проекте.
  • Можно создавать подпроекты, например для портала это будет "Разработать сервис фотографий", "Разработка форума" или "Реконструкция поискового-модуля". И для каждого будут отдельные группы тикетов.
  • Просмотреть изменения кодов проекта в svn-ревизиях и сравнивание их.
  • Создание, просмотр и закрытие тикетов.
  • Управление пользователями, участвующие в разработке.
  • Wiki-движок, с помощью которого можно создавать как справочную информацию, так и документацию по проекту в целом.

Так же имеется куча плагинов для Trac, с помощью которых вы легко расширите функционал!

Установка

Для развертывания Trac нам понадобится:

  • Apache 2.2 - но вы можете так же развернуть и на Apache 1.3 или на Nginx, к примеру
  • mod_python3 - это для Apache 2, а для 1.3 надо просто "mod_python"
  • Subversion - либо другие системы контроля версия, например Mercurial, git или Bazaar
  • py-subversion - для работы из Python с Subversion
  • MySQL - можете также использовать SQLite или PgSQL. Подробнее http://trac.edgewall.org/wiki/DatabaseBackend
  • Ну и сам Trac разумеется :)

Установка mod_python3 на Apache 2.2

# cd /usr/ports/www/mod_python3/
# make install clean

Зайдите и проверьте установился ли модуль mod_python.so

# cd /usr/local/libexec/apache22/
# ll | grep mod_python

Если он есть, то впишите в конфиг httpd.conf

LoadModule python_module libexec/apache22/mod_python.so 

Более подробно о mod_python: http://trac.edgewall.org/wiki/TracModPython

Установка Trac

Trac ставиться очень просто:

# cd /usr/ports/www/trac
# make install clean

Если вы хотите управлять настройками trac-проекта и правами пользователей из web-панели, то установите плагин ”trac-webadmin”.

# cd /usr/ports/www/trac-webadmin/
# make install clean

Более подробно о WebAdmin: http://trac.edgewall.org/wiki/WebAdmin

Использование MySQL

Если вы хотите использовать MySQL для хранения данных Trac, то вам надо установить MySQL-python драйвер. Если вам не надо, то можете использовать SQLite и пропустить установку MySQL-python, которую я опишу далее.

Для этого надо установить драйвер MySQL-python.

# cd /tmp
# fetch http://downloads.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
# tar -xvf MySQL-python-1.2.2.tar.gz
# cd MySQL-python-1.2.2
# python setup.py build
# python setup.py install

Если вы используете Apache, то перезагрузите его, дабы достучатся до mod_python.

Теперь создадим базу данных и пользователя для Trac:

CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; 
CREATE USER tracuser IDENTIFIED BY 'password';
GRANT ALL ON trac.* TO tracuser;
FLUSH PRIVILEGES;

Не забудьте заменить пароль в запросе на придуманный вами.

Установка Subversion с поддержкой Python

# cd /usr/ports/devel/subversion 
# make WITH_PYTHON=true WITH_BERKELEYDB=db42 WITH_MOD_DAV_SVN= install

Более подробно о ключах: http://trac.edgewall.org/wiki/TracFaq

Установка py-subversion

# cd /usr/ports/devel/py-subversion 
# make FORCE_PKG_REGISTER= install clean 

Более подробно о ключе: http://trac.edgewall.org/wiki/TracSubversion

Настройка Apache

Отредактируем конфиг Apache и добавим новый виртуальный хост:


<VirtualHost *:80>
    DocumentRoot "/home/trac"
    ServerName trac.example.com
    <Location />
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /home/trac/example.com
        PythonOption TracUriRoot /

        AuthType Basic
        AuthName "Trac Server"
        AuthUserFile /home/trac/example.com/.htpasswd
        Require valid-user
    </Location>
</VirtualHost>

Я делаю с обязательной авторизацией на Trac, дабы сторонние пользователи не заходили. Если вы хотите чтобы Trac был открыт на всеобщее обозрение, то можно эту часть:

AuthType Basic
AuthName "Trac Server"
AuthUserFile /home/trac/example.com/.htpasswd
Require valid-user

Вынести в отдельный <Location>, например вот так получится в результате:


<VirtualHost *:80>
    DocumentRoot "/home/trac"
    ServerName trac.example.com
    <Location />
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /home/trac/example.com
        PythonOption TracUriRoot /
    </Location>
    <Location /login>
        AuthType Basic
        AuthName "Trac Server"
        AuthUserFile /home/trac/example.com/.htpasswd
        Require valid-user
    </Location>
</VirtualHost>

Также, я использую пароли от Subversion для авторизации, если посмотрите статью FreeBSD. Установка и настройка Subversion, то у нас был путь "/home/svn/svn-auth-file", вот его и будем использовать в качестве AuthUserFile:

...
AuthUserFile /home/svn/svn-auth-file
...

Настройка Trac

Для начала нам надо создать trac-проект и настроить его.

Создание trac-проекта

# trac-admin /home/trac/example.com initenv

initenv — создание и использование интерактивного режима

Более подробно о командах trac-admin: http://trac.edgewall.org/wiki/TracAdmin

Далее, укажите имя проекта и адрес для соединения с MySQL

mysql://tracuser:password@localhost:3306/trac

Тип используемого сервера контроля версия "svn" и путь до svn-репозитория вашего проекта

/home/svn/repos/example.com

Подробнее http://trac.edgewall.org/wiki/TracEnvironment

Настройка trac-проекта

Отредактируйте файл "/home/trac/example.com/conf/trac.ini" и измените следующие директивы:

default_charset = utf-8
base_url = http://trac.example.com

В конце файла добавляем активацию плагина "webadmin":

[components]
webadmin.* = enabled

Подробнее по всем директивам http://trac.edgewall.org/wiki/TracIni

Если вы заходите на адрес "trac.example.com" и видите:
Permission denied: '/home/trac/example.com/.egg-cache'

то, настройте права на запись для каталога trac-проекта.

Назначаем права администратора одному из пользователей


# trac-admin /home/trac/example.com permission add имя_пользователя TRAC_ADMIN

Синхронизацию trac-проекта с svn-проектом


# trac-admin /home/trac/example.com resync

Автоматическое оповещения svn-изменений для trac-тикетов

И на последок, если вы используете svn-хуки, как я уже описывал в статье Subversion. Автоматическое обновление проекта при помощи хуков, то добавьте эти строки в post-commit для оповещения trac-тикетов:


TRAC_ENV="/home/trac/example.com"
/usr/bin/python /usr/local/bin/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"

Резюме

Вот и все, Trac установлен и настроен для комфортной работы, в последующих статьях буду рассказывать как настроить Mylyn, что бы непосредственно из IDE работать с Trac и управлять всеми подпроектами и тикетами!

Если есть вопросы, то добро пожаловать в комментарии!

Комментарии

спасибо :)

Спасибо надо говорить в теме http://pyha.ru/forum/topic/3025.0 :)

Смени диз плз

123, вы кто?

что с моей авкой?

спамер это!

CTAPbIu_MABP,
1. а что с ней?
2. точно? у тебя такой же спам был?

точно, у меня еще и не такой спам был
они более мение общей фразой сначала получают первый камент
а потом пользуются настройкой "разрешать, если есть хоть один подтвержденный камент"
и спамят в собственное удовольствие

Ну, у меня тогда это первое спам сообщение после http://adw0rd.ru/2009/antispam/
И получается это человеческий спам...

индусы за 10 центов тебе и не такое сделают

Я не на столько популярен думаю.. )

adw0rd, ты мега крут и мегапопулярен! например на пыха.ру

Хорош жечь :)

Не какой я не спамер,просто глаза режет такой диз.Устроили тут :)

Индусов в своём коде ищите.

123, да что ты злися?

123, нарисуй другой, говорить все мастаки ;)

Убери тень и оранжевый цвет...

А какой поставить цвет?

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

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

Оки, спасибо!

Пример аналогичной установки для Debian/Ubuntu:
Установка и настройка Trac в Debian / Ubuntu

debianworld ниче так :)

Оставьте свой комментарий

Markdown