Trac - быстрый старт
Материал из 1GbWiki.
Версия 12:12, 23 ноября 2009 (править) Renton (Обсуждение | вклад) (→Настройка FastCGI диспетчера и файла <code>.htaccess</code>) ← К предыдущему изменению |
Версия 12:58, 23 ноября 2009 (править) (отменить) Renton (Обсуждение | вклад) К следующему изменению → |
||
Строка 134: | Строка 134: | ||
== Настройка SVN == | == Настройка SVN == | ||
- | + | Обратитесь пожалуйста к этой статье: [[SVN - быстрый старт (профессиональная версия)]] | |
- | + | ||
- | [[ | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | - | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
=== Интеграция с 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
- http://test-l7-trac.1gb.ru/ - демо версия trac на хостинге 1Gb.ru
См. также
Ссылки
- The Trac User and Administration Guide (англ.) - документация по Trac на сайте разработчиков.
- The Trac User and Administration Guide (рус.) - документация по Trac на сайте разработчиков (частичный перевод).
- Trac-Hacks (англ.) - популярный ресурс по Trac с большим количеством плагинов и модулей.