我試圖以通過瀏覽器每一個具有不同的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