Я когда-то написал статью Установка и настройка Trac на FreeBSD, теперь пришло время отказываться от Apache, в пользу Nginx+PHP/FastCGI и необходимо куда-то пересаживать Trac.
Есть несколько способов помимо mod_python, я выбрал использование tracd (веб-сервер самого трака). Но если в какой-то момент времени я пойму что этот способ мне не нравится, я обязательно напишу статью про связку через FastCGI.
--protocol - протокол (Варианты: http, scgi, ajp. В нашем случае http);
--env-parent-dir - мульти-проектовый режим, надо указать родительский каталог проектов (Еще есть "--single-env", это сингл-режим и надо указывать полный путь до проекта);
--basic-auth - авторизация (Формат "projectdir,htpasswd_file,realm", если юзаете --env-parent-dir, то можете только каталог проекта указывать в "projectdir", а не полный путь).
Наберите "--help" и почитайте справку по всем опциям.
Так как мы будем запускать от имени www, то нам надо для каталога /var/run/trac/ указать права на запись.
Сохраним скрипт в файле "/usr/local/etc/rc.d/tracd" и запустим:
/usr/local/etc/rc.d/tracd start
Если вы увидели ошибку "This account is currently not available.", то вам надо для пользователя от которого вы запускаете tracd установить шелл. Делается через
Debian 5. Trac 0.11. подставляю в su имя хозяина траковского проекта, он же хозяин базы svn. шелл этому пользователю разрешён. и нифига!
сейчас у меня нет доступа к ssh, дома еще на 10 раз перепроверю все права, а то грызут смутные сомнения…
Готово, теперь работает с --daemonize. Я юзеру поставил шелл через chsh (шелл: /bin/bash) и заработало, еще там путь был неверный до пароле, но видимо ты просто забыл его сменить, так как в своей строке у тебя был нормальный. Ну еще для stop() прикрутил запуск от того же юзера что и start().
моё чсв уже близко к нулю, но я не вижу в статье как запретить обращение напрямую к 3050 мимо нгинкса
http://trac.mysite.com/test/ - работает через nginx на порту 80
http://trac.mysite.com:3050/test/ - тоже работает, напрямую.
Комментарии
Есть ли возможность запускать "сайты" под разными учетками? Я бы предпочел чтобы trac крутился под отдельным аккаунтом
это решает проблему )
можно писать это в секции сервер?
туплю, сорри
У меня не прокатывает через su почему-то. Шелл у указуемого юзера есть.
если убрать ключ daemonize то через su запускается, но это же не метод :( гемор какой-то
А что за ОС? Какая версия?
Debian 5. Trac 0.11. подставляю в su имя хозяина траковского проекта, он же хозяин базы svn. шелл этому пользователю разрешён. и нифига!
сейчас у меня нет доступа к ssh, дома еще на 10 раз перепроверю все права, а то грызут смутные сомнения…
Как вариант дай мне доступ по ssh, рутовый - я помогу разобраться
ок, как доберусь до пароля — вышлю жабером. спасибо!
Готово, теперь работает с --daemonize. Я юзеру поставил шелл через chsh (шелл: /bin/bash) и заработало, еще там путь был неверный до пароле, но видимо ты просто забыл его сменить, так как в своей строке у тебя был нормальный. Ну еще для stop() прикрутил запуск от того же юзера что и start().
Забыл скачать, что --daemonize не запускался, так как прав небыло у пользователя на PIDFILE
Адво, я восхищаюсь тобой!
Да ладно, что такого, я всегда помогу другу! :)
а как указать что-то вроде Listen 127.0.0.1:3050, чтобы только через nginx была возможность обратиться к траку?
Я же написал в статье :)
моё чсв уже близко к нулю, но я не вижу в статье как запретить обращение напрямую к 3050 мимо нгинкса
http://trac.mysite.com/test/ - работает через nginx на порту 80
http://trac.mysite.com:3050/test/ - тоже работает, напрямую.
Я блокирую через ipfw, тебе видимо надо через iptables
На работу через tracd все-таки нету нареканий, он норм справляется?
Нету, все прекрасно работает :)
А какие плюсы у этой связки перед простым tracd, без отдельного веб-сервера? Работает стабильно, для корпоративного трекера должно хватить.
Никаких
Оставьте свой комментарий