Динамические субдомены, mod_python и trac

Я использую filezilla

4
задан 13 April 2017 в 15:13
1 ответ

Я изменил бы mod_python на mod_wsgi. В этой конфигурации можно установить TRAC_PATH с огибающей переменной.

Некоторая выборка от демонстрационной статической конфигурации:

    WSGIDaemonProcess tracproc user=www-data group=www-data processes=1 threads=25
    WSGIProcessGroup tracproc

   <Directory /srv/wsgi>
        WSGIProcessGroup tracproc
        Order deny,allow
        Allow from all
        WSGIApplicationGroup %{GLOBAL}
    </Directory>

   <Location /trac>
        Require valid-user
        AuthType Basic
        ...
    </Location>
    WSGIScriptAlias /trac /srv/wsgi/trac-stable.wsgi

    RewriteCond %{REQUEST_URI} ^/trac/ [OR]
    RewriteCond %{REQUEST_URI} ^/trac$
    RewriteRule . - [E=trac.env_path:/srv/tracenv]

Необходимо было бы протестировать и разработать, как получить субдомен или домен в RewriteRule к [E =...].

Можно использовать обратные ссылки от шаблона при установке ENV (как [E=trac.env_path:%1]. Я не уверен, можно ли использовать другие огибающие переменные там как [E=trac.env_path:%{HTTP_HOST}], в документации ничто не говорится относительно этого. Я предполагаю, что необходимо смочь сделать это. В противном случае затем еще некоторое волшебство с RewriteRules может, возможно, помочь.

trac-stable.wsgi для ссылки:

import sys
sys.stdout = sys.stderr

# when Trac is not in default python sitedir
#import site
#site.addsitedir('/opt/trac-0.11/lib/python2.5/site-packages')

__requires__ = 'Trac=0.11.6'
from pkg_resources import load_entry_point

import os
os.environ['PYTHON_EGG_CACHE'] = '/srv/python_eggs'
os.environ['LC_TIME'] = 'pl_PL.UTF-8'

import trac.web.main

application = trac.web.main.dispatch_request

Более поздняя идея - если не возможно использовать [E=trac.env_path:%{HTTP_HOST}] затем Вы могли передать столько, сколько Вы нуждаетесь с огибающими переменными и создаете ENV env_path в trac-stable.wsgi.

3
ответ дан 3 December 2019 в 03:51
  • 1
    Дальнейшие примеры того, как сделать это с mod_wsgi, находятся в документации относительно интеграции Trac с mod_wsgi в ' code.google.com/p/modwsgi/wiki/IntegrationWithTrac '. –  Graham Dumpleton 10 February 2010 в 00:36
  • 2
    Это - работы точно, как я хотел это также! хорошо, после того как я добираюсь, переписать правила вниз благодарит –   10 February 2010 в 01:35
  • 3
    Это работает с % {HTTP_HOST}! –   10 February 2010 в 01:56
  • 4
    Но теперь что относительно на проект authenication? Я продолжил бы использовать Модификацию-wsgi для этого также? –   10 February 2010 в 06:14
  • 5
    Зависит от того, как Вы намереваетесь сделать аутентификацию. Нормальный путь использует Apache, чтобы сделать это, и это отлично от mod_wsgi. Альтернатива, если хотят поддержать пользовательские детали в мире Python, должна сделать что-то как то, что описано в ' code.google.com/p/modwsgi/wiki/AccessControlMechanisms '. существуют также плагины для Trac, которые позволяют основанную на форме аутентификацию вместо того, чтобы использовать Базовую аутентификацию HTTP и которые также позволяют пользовательским деталям быть обработанными в мире Python. –  Graham Dumpleton 11 February 2010 в 00:13

Теги

Похожие вопросы