Pull to refresh

Пошаговая установка TRAC на FreeBSD для начинающих

Reading time4 min
Views1.5K

The Trac project


Я не буду описывать ее возможности и для чего эта система нужна, все есть на офф. сайте (http://trac.edgewall.org) или в википедии.
Рассмотрю только установку и настройку детально для новичков (статья посвящена другу Энверу из Рязани, может еще кому пригодиться), тому кто уже с этим сталкивался пользы эта статья не принесет.

Связка FreeBSD + SVN + Apache2 + Trac


Для новичков подробнее о связке и способе работы

Все исходники разрабатываемого ПО лежат в SVN (удобно видеть все изменения и всегда легко сделать откат, если надо).
Trac — система, предоставляющая возможность интерактивной работы прежде всего с svn репозиторием, а так же вики (не считая доп. модулей).

Установка

Первым ставим Apache 2.2
cd /usr/ports/www/apache22
make WITH_BERKELEYDB=db42 install


Качаем и ставим мод питон
cd /tmp
fetch http://www.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
tar -xvf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure
make
make install
rm -R mod_python-3.3.1 mod_python-3.3.1.tgz


Далее SVN
cd /usr/ports/devel/subversion
make WITH_MOD_DAV_SVN= install


Установка Trac и модуля webadmin
cd /usr/ports/www/trac
make install
cd /usr/ports/www/trac-webadmin/
make install


при желании можно установить и другие модули, на Ваше усмотрение

Настройка

Теперь когда все установлено приступаем к настройке, для начала настроим Subversion.
Создаем директорию для хранения репозиториев, т.к. мы будем юзать доступ через апач с модулем WebDav, то лучше хранить их в папке с правами группы апача
mkdir /usr/local/www/repository

создаем проект
svnadmin create /usr/local/www/repository/project_name

рекурсивно назначаем права группы и пользователя apache
chown -R www:www /usr/local/www/repository

создаем файл с пользователями и паролями
htpasswd -c /usr/local/etc/project_name.passwd user_name
для добавления пользователя та же самая команда, но без ключа -c

Переходим к Apache
проверим включен ли mod_dav_svn в конфиге апача edit /usr/local/etc/apache22/httpd.conf (должна быть строка вида LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so)
там же добавляем ниже
LoadModule python_module libexec/apache22/mod_python.so

еще ниже раскомменчиваем сроку
Include etc/apache22/extra/httpd-vhosts.conf
сохраняем…

открываем файл с виртуальными хостами edit /usr/local/etc/apache22/extra/httpd-vhosts.conf и правим
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin webmaster@project_name.ru
DocumentRoot "/usr/local/www/trac/htdocs"
ServerName trac.project_name.ru
ErrorLog "/var/log/trac.project_name.ru-error_log"

<Location ~ "/(svn|project_name/login)">
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/etc/project_name.passwd
Require valid-user
</Location>

<Location /svn>
DAV svn
SVNParentPath /usr/local/www/repository
</Location>
</VirtualHost>


сохраняем изменения и рестартуем апач
apachectl restart

проверяем репозиторий на работоспособность через браузер и SVN-клиент(я использую Subcommander и SmartSVN под линукс и винду соответсвенно) server_ip/svn/project_name ну и используя логины пользователей которых Вы создали.

Далее создаем проект в Trac

создаем папку для проектов, копируем статику
cd /usr/local/www
mkdir trac
cd trac
mkdir -pv /usr/local/www/trac/htdocs/i
cp -R /usr/local/share/trac/htdocs/* /usr/local/www/trac/htdocs/i
echo "<html><body><a href=/project_name>Project Name</a></body></html>" >> /usr/local/www/trac/htdocs/index.html


и создаем сам проект
trac-admin project_name initenv
далее заполняем устанавливаем по инструкции,
название проекта
база по умолчанию используется sqlite просто жмем (для других БД информация тут http://trac.edgewall.org/wiki/DatabaseBackend)
тип репозитория: svn
путь к репозиторию: /usr/local/www/repository/project_name
остальное по умолчанию…

открываем для редактирования конфиг проекта edit /usr/local/www/trac/project_name/conf/trac.ini
находим директивы и ставим новые значения
htdocs_location = /i/
default_charset = utf-8
base_url =http://server_ip/project_name


и в конце добавляем модуль webadmin
[components]
webadmin.* = enabled

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

назначаем права администратора одному из пользователей
trac-admin /usr/local/www/trac/project_name permission add user_name TRAC_ADMIN

делаем синхронизацию проекта
trac-admin /usr/local/www/trac/project_name resync

после установки назначаем снова права на папку с проектами
chown -R www:www /usr/local/www/trac

Проверяем на работоспособность Trac tracd --port 8000 /usr/local/www/trac/project_name и смотрим его в браузере http://server_ip:8000
для завершения процесса используем сочетание <Ctrl + C>

Если все работает нормально, то нужно, что бы Trac запускал апач…
Снова открываем для редактирования
edit /usr/local/etc/apache22/extra/httpd-vhosts.conf

Добавляем
<Location /project_name>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv/usr/local/www/trac/project_name
PythonOption TracUriRoot /project_name
</Location>


Снова перезагружаем апач и открываем в браузере http://server_ip/project_name
Заходим под логином админа и наводим порядок не забудьте проставить права доступа пользователям http://trac.edgewall.org/wiki/TracPermissions

Для Linux систем отличается только процесс установки и пути к файлам.

На одном сервере можно вести несколько проектов, поэтому достаточно только создать новый проект в svn и trac и дописать их в httpd-vhosts.conf

P.S.: Статья писалась с максимальным упрощением для понимания начальных пользователей Linux, поэтому комменты с тем, что «вот лучше делать так» или «вот так будет безопаснее» можно опустить, т.к. я предполагал, что сервер в локальной сети компании, а не в интернет…
Tags:
Hubs:
Total votes 7: ↑5 and ↓2+3
Comments4

Articles