Я изменил бы 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.