我正在尝试配置两个 Trac 实例,以便通过浏览器访问它们,每个实例都有不同的 url:
http://trac.domain.com/trac1
http://trac.domain.com/trac2
第一次访问它们时,Apache 响应很好,我使用 /trac1 获得第一个 Trac,然后在 /trac2 中获得第二个 Trac。但是当我再次访问 /trac1 时,它不断给我第二个 Trac (/trac2) 的内容。如果我触摸第一个的 .wsgi 配置文件(比如 trac1.wsgi),然后使用浏览器再次请求 /trac1,我会再次获得预期的内容。
相反的情况是相同的:访问/trac2,然后是/trac1,然后/trac2 不断给出/trac1 的内容,直到我触摸trac2.wsgi...
所以看起来 Python、mod_wsgi 和/或 Apache 正在缓存结果或其他东西。我不是系统管理员,无法进一步解决这个问题。
Apache 的 .wsgi 文件和 http.conf:
trac1.wsgi:
import os
os.environ['TRAC_ENV'] = '/home/myuser/trac/trac1'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/'
import trac.web.main
application = trac.web.main.dispatch_request
trac2.wsgi:
import os
os.environ['TRAC_ENV'] = '/home/myuser/trac/trac2'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/'
import trac.web.main
application = trac.web.main.dispatch_request
http.conf:
<VirtualHost trac.domain.com:8080>
WSGIScriptAlias /trac1 /home/myuser/public_html/trac1/apache/trac1.wsgi
WSGIScriptAlias /trac2 /home/myuser/public_html/trac2/apache/trac2.wsgi
<Directory /home/myuser/public_html/trac1/apache>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<Location "/trac1">
AuthType Basic
AuthName "Trac1 Trac Auth"
AuthUserFile /home/myuser/public_html/trac1/apache/trac1.htpasswd
Require valid-user
</Location>
<Directory /home/myuser/public_html/trac2/apache>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<Location "/trac2">
AuthType Basic
AuthName "Trac2 Trac Auth"
AuthUserFile /home/myuser/public_html/trac2/apache/trac2.htpasswd
Require valid-user
</Location>
</VirtualHost>
如果有人建议替代配置或其他配置,也将受到欢迎。谢谢!
赫克托