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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 12:12, 23 ноября 2009 (править)
Renton (Обсуждение | вклад)
(Настройка FastCGI диспетчера и файла <code>.htaccess</code>)
← К предыдущему изменению
Версия 12:58, 23 ноября 2009 (править) (отменить)
Renton (Обсуждение | вклад)

К следующему изменению →
Строка 134: Строка 134:
== Настройка SVN == == Настройка SVN ==
-=== Создание репозитория, службы SVN ===+Обратитесь пожалуйста к этой статье: [[SVN - быстрый старт (профессиональная версия)]]
-* В разделе личного кабинета /Хостинг HTTP служб/ добавляем к сайту, на который мы ставим Trac, демон SVN:+
-[[Изображение:Svnd_add.jpg|500px|thumb|left|Добавление службы SVN к сайту]]<br clear="both" />+
-После успешного добавления службы в таблице появятся ее параметры, обратите внимание на '''номер порта''' на котором будет работать ваша служба:+
-[[Изображение:Svnd_add_ok_1.jpg|500px|thumb|left|Параметры службы]]<br clear="both" />+
- +
-* Создаем репозиторий:+
- $ cd ~/svn && svnadmin create название_репозитория+
-----+
-'''Важное замечание.''' Репозиторий будет работать только в каталоге '''~/svn''', поэтому не забывайте создавать его именно в нем.+
-----+
- +
-=== Добавление пользователей ===+
-* В разделе личного кабинета /Дополнительные FTP логины/ создаем дополнительного SSH-пользователя, для работы с SVN через SSH-туннель:+
-[[Изображение:Add_ssh_aux_login.jpg|500px|thumb|left|Добавление логина в личном кабинете]]<br clear="both" />+
-в случае успешного добавления, в таблице появится такая запись:+
-[[Изображение:Add_ssh_aux_login_ok.jpg|500px|thumb|left|Запись об успешном добавлении]]<br clear="both" />+
- +
-Этот пользователь сможет работать с SVN репозиторием через SSH-туннель.+
- +
-* Добавляем пользователя, редактируя файл <code>~/svn/название_репозитория/conf/passwd</code>:+
- [users]+
- имя_пользователя = пароль+
- +
-----+
-'''''Примечание.''''' Для удобства можно использовать те же логин/пароль, что и для дополнительного SSH-входа.+
-----+
-Этот пользователь сможет работать с SVN репозиторием по протоколу SVN.+
- +
-В файле <code>~/svn/название_репозитория/conf/authz</code> можно задать "права" для созданного пользователя. Назначим обычные - "чтение-запись":+
- [/]+
- имя_пользователя = rw+
- +
-Если вы хотите запретить анонимный доступ на чтение репозитория по протоколу SVN, то в файле <code>~/svn/название_репозитория/conf/svnserve.conf</code> в секции <code>[general]</code> добавьте строки:+
- anon-access = none+
- password-db = passwd+
=== Интеграция с trac === === Интеграция с trac ===
* В файле <code>~/trac/название_проекта/conf/trac.ini</code> указываем путь к нашему репозиторию: * В файле <code>~/trac/название_проекта/conf/trac.ini</code> указываем путь к нашему репозиторию:
repository_dir = /home/virtwww/имя_пользователя/svn/название_репозитория repository_dir = /home/virtwww/имя_пользователя/svn/название_репозитория
- 
-=== Настройка клиентов, тестирование подключений === 
-==== Протокол SVN ==== 
-Работа с репозиторием по протоколу SVN является наиболее быстрой и удобной, прекрасна реализована как в Windows, так и в UNIX системах. 
-* UNIX, работа через консольный клиент <code>svn</code>: 
- svn --username=имя_пользователя list svn://адрес_вашего_сайта:SVN_порт/название_репозитория 
- 
-'''имя_пользователя''' - это имя из файла ~/svn/название_репозитория/conf/passwd<br /> 
-'''адрес_вашего_сайта''' - сайт, на котором вы создали SVN-даемон;<br /> 
-'''SVN_порт''' - порт, на котором работает SVN-даемон, указан в разделе кабинета /Хостинг HTTP служб/<br /> 
-'''название_репозитория''' - имя, которое вы задавали в команде <code>svnadmin create</code><br /> 
- 
-* Windows TortoiseSVN 
-Пример ввода URL в Repository Browser: 
-[[Изображение:Repo_browser_url_1.jpg|500px|thumb|left|Ввод URL]]<br clear="both" /> 
- 
-Обзор репозитория: 
-[[Изображение:Repo_browser.jpg|500px|thumb|left|Рабочее окно Repo-browser]]<br clear="both" /> 
- 
-==== Протокол SSH ==== 
-* Работа из UNIX через консольный клиент <code>svn</code>. 
-Прежде всего, у себя на локальной машине нужно сделать настройку svn клиента для работы по SSH-туннелю через специальный порт. Для этого в файле <code>~/.subversion/config</code> в секции <code>[tunnels]</code> добавьте строку: 
- sshtunnel = ssh -p 2222 
- 
-Вообще тут возможны два варианта работы: авторизация по паролю, и авторизацию по ключу. 
- 
-''Первый способ'' безопасен, но требует постоянного ввода пароля при доступе к SVN-репозиторию, при этом не нужно делать никаких дополнительных настроек как на сервере, так и на клиенте. Работает так: 
- $ svn list svn+sshtunnel://имя_пользователя@адрес_вашего_сайта/название_репозиторя 
- Password: 
-команда попросит вас ввести пароль, который вы указывали при создании дополнительного SSH/SVN пользователя в разделе кабинета /Дополнительные FTP логины/. 
- 
-''Второй способ'' заключается в настройке беспарольного доступа на основе авторизации по ключам. В Интернете масса информации по этому вопросу, поэтому мы остановимся только ньюансах. 
- 
-'''Важное замечание.''' После того, как вы разместили публичный ключ на сервере в файл <code>~/.ssh/authorized_keys</code> '''обязательно''' добавьте в начало строки (до слов <code>ssh-rsa</code> или <code>ssh-dsa</code>) с ключем следующий код: 
- command="[ ${USER} != имя_пользователя ] && exit" ssh-rsa AAAAB3N ... == user@hostname 
- 
-'''имя_пользователя''' - имя пользователя из раздела кабинета /Дополнительные FTP логины/, соответственно это же имя должен использовать тот человек, чей ключ вы разместили на сервере. 
- 
-В этом случае команда: 
- $ svn list svn+sshtunnel://имя_пользователя@адрес_вашего_сайта/название_репозиторя 
-не будет спрашивать про пароль. 
- 
-==== Туннель SSH ==== 
- 
-Это наиболее быстрый и безопасный способ работы с репозиторием. Работа идет по протоколу SVN, но не с удаленным сервером, а с локальной машиной (портом), на которую проброшен по защищенному SSH-каналу порт с удаленной машины. 
- 
-* Для UNIX систем достаточно сделать так: 
- $ ssh -f -C -N -p 2222 -L 3690:адрес_вашего_сайта:SVN_порт имя_пользователя@адрес_вашего_сайта 
- 
-'''имя_пользователя''' - это имя из файла <code>~/svn/название_репозитория/conf/passwd</code><br /> 
-'''адрес_вашего_сайта''' - сайт, на котором вы создали SVN-даемон;<br /> 
-'''SVN_порт''' - порт, на котором работает SVN-даемон, указан в разделе кабинета /Хостинг HTTP служб/<br /> 
- 
-Тогда работать с SVN можно уже так: 
- $ svn --username=имя_пользователя list svn://localhost/название_репозитория 
- 
-* Для Windows: 
-Основные настройки для доступа по SSH на сервер через PuTTY см. в статье [[Юникс шелл]], здесь будет только отмечена секция настройки туннелинга. 
-[[Изображение:Putty_tunnel_svn_add_1.jpg|350px|thumb|left|Добавление опция туннеля]]<br clear="both" /> 
-[[Изображение:Putty_tunnel_svn_add_done.jpg|350px|thumb|left|Окно конфигурирования туннелинга после добавления опций]]<br clear="both" /> 
- 
-После соединения с сервером по SSH в TortoiseSVN можно использовать такие URL: 
- 
- svn://localhost/название_репозитория 
== Демо trac == == Демо trac ==
* http://test-l7-trac.1gb.ru/ - демо версия trac на хостинге 1Gb.ru * http://test-l7-trac.1gb.ru/ - демо версия trac на хостинге 1Gb.ru
- 
- 
== См. также == == См. также ==
* [[Юникс шелл]] * [[Юникс шелл]]
 +* [[SVN - быстрый старт (профессиональная версия)]]
== Ссылки == == Ссылки ==
Строка 251: Строка 151:
* [http://trac.edgewall.org/wiki/TranslationRu/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 с большим количеством плагинов и модулей. * [http://www.trac-hacks.org/ Trac-Hacks] (англ.) - популярный ресурс по Trac с большим количеством плагинов и модулей.
-* [http://ru.wikipedia.org/wiki/Subversion Subversion] (рус.) - общая информация по Subversion на сайте wikipedia. 
-* [http://svnbook.red-bean.com/index.ru.html Управление версиями в Subversion] (рус.) - официальная документация по Subversion. 
-* [http://tortoisesvn.net/docs/release/TortoiseSVN_ru/ TortoiseSVN] (рус.) - документация по TortoiseSVN. 
[[Категория:Программирование]] [[Категория:Программирование]]
[[Категория:Python]] [[Категория:Python]]

Версия 12:58, 23 ноября 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'ов добавьте строки в ваш ~/.bashrc:
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

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

  • Установим свой 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
  • Также сразу ставим модуль WebAdmin для настройки trac через web-интерфейс:
$ easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/

Настройка trac

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

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

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

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

Тип репозитория - svn. Остальные настройки проекта оставляем по-умолчанию, из потом можно будет изменить через файл trac.ini

Настройка FastCGI диспетчера и файла .htaccess

  • Переходим в каталог ~/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()

Для того, чтобы у нас заработала авторизация, обязательно скопируйте файл index.fcgi в файл admin.fcgi:

$ cd ~/http && cp index.fcgi admin.fcgi

Файл .htaccess

DirectoryIndex index.fcgi

Options +FollowSymlinks

AddHandler fcgid-script .fcgi

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 и т.п.


Примечание. Если вы хотите добавить еще одного пользователя, то опцию -c указывать не нужно.


О добавлении пользователей SVN, SSH речь пойдет ниже.

trac.ini

  • Включем WebAdmin, в конец файла добавляем строки:
[components]
webadmin.* = enabled

Остальные опции на ваше усмотрение.

Патч для создания правильных URI

  • Для создания "красивых" 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', )),

Настройка SVN

Обратитесь пожалуйста к этой статье: SVN - быстрый старт (профессиональная версия)

Интеграция с trac

  • В файле ~/trac/название_проекта/conf/trac.ini указываем путь к нашему репозиторию:
repository_dir = /home/virtwww/имя_пользователя/svn/название_репозитория

Демо trac

См. также

Ссылки

  • The Trac User and Administration Guide (англ.) - документация по Trac на сайте разработчиков.
  • The Trac User and Administration Guide (рус.) - документация по Trac на сайте разработчиков (частичный перевод).
  • Trac-Hacks (англ.) - популярный ресурс по Trac с большим количеством плагинов и модулей.
Личные инструменты