
Я когда-то написал статью Установка и настройка Trac на FreeBSD, теперь пришло время отказываться от Apache, в пользу Nginx+PHP/FastCGI и необходимо куда-то пересаживать Trac.
Есть несколько способов помимо mod_python, я выбрал использование tracd (веб-сервер самого трака). Но если в какой-то момент времени я пойму что этот способ мне не нравится, я обязательно напишу статью про связку через FastCGI.
Tracd
Поднимаем tracd так:
tracd --daemonize --pidfile=/var/run/trac/tracd.3050 --port=3050 --protocol=http --env-parent-dir=/var/trac \
--basic-auth=project1,/var/svn/svn-auth-file,svn --basic-auth=project2,/var/svn/svn-auth-file,svn
Где,
- --daemonize — запуск tracd в фоне как демона;
- --pidfile — путь до pid-файла;
- --port — tcp-порт, который будет слушать;
- --protocol — протокол (Варианты: http, scgi, ajp. В нашем случае http);
- --env-parent-dir — мульти-проектовый режим, надо указать родительский каталог проектов (Еще есть «--single-env», это сингл-режим и надо указывать полный путь до проекта);
- --basic-auth — авторизация (Формат «projectdir,htpasswd_file,realm», если юзаете --env-parent-dir, то можете только каталог проекта указывать в «projectdir», а не полный путь).
Наберите «--help» и почитайте справку по всем опциям.
Nginx
Теперь добавим в Nginx новый бекенд:
upstream trac {
server 127.0.0.1:3050;
}
И перепишем конфиг хоста:
server {
listen 80;
server_name trac.example.com;
location / {
#auth_basic "Password, please!";
#auth_basic_user_file /var/svn/svn-auth-file;
proxy_pass http://trac;
proxy_set_header Host $host;
}
}
Ну вот и все, осталось ребутнуть nginx
/usr/local/etc.rc.d/nginx restart
Читать полностью »