我试图以通过浏览器每一个具有不同的URL访问这些配置两个Trac的实例2种Trac的情况下,怪异的行为很好,我用/ trac1获得第一个Trac,然后在/ trac2获得第二个Trac。但是当我再次访问/ trac1时,它会一直给我第二个Trac(/ trac2)的内容。如果我触摸第一个.wsgi配置文件(称为trac1.wsgi),然后使用浏览器再次请求/ trac1,我会再次获得预期的内容。与下的Apache + mod_wsgi的
相反的情况相同的工作:访问/ TRAC2,然后/ TRAC1,然后/ TRAC2一直给/ TRAC1的内容,直到我摸trac2.wsgi ...
这么看来的Python,mod_wsgi的和/或Apache正在缓存结果或其他内容。我不是系统管理员,无法进一步处理这个问题。
的.wsgi文件,并为Apache的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>
如果有人提出另一种结构或什么的,它会受到欢迎,以及。谢谢!
赫克托
这不是因为什么“重要提示”部分称,并通过自身它们描述应该不会导致出现问题的配置一样简单。所以,我实际上会不同意他们的具体例子。我建议你读“http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac”和“http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Environment_Variables”。后者描述了使用os.environ的问题。对于Trac,只应该是混合TRAC_ENV和TRAC_ENV_PARENT_DIR的问题。避免问题的简短回答是使用mod_wsgi守护进程模式,如第一个链接所示。 – 2009-10-08 22:04:13