2 つの Trac インスタンスを設定して、ブラウザ経由でそれぞれ異なる URL でアクセスできるようにしようとしています。
http://trac.domain.com/trac1
http://trac.domain.com/trac2
最初にアクセスしたとき、Apache の応答は問題ありません。最初の Trac は /trac1 で取得され、次に 2 番目の Trac は /trac2 で取得されます。しかし、/trac1 に再度アクセスすると、2 番目の Trac (/trac2) の内容が表示され続けます。最初の .wsgi 構成ファイル (trac1.wsgi とします) に触れてから、ブラウザーで /trac1 を再度要求すると、期待される内容が再び取得されます。
反対の場合も同じように機能します: /trac2 にアクセスし、次に /trac1 にアクセスし、次に /trac2 は、trac2.wsgi に触れるまで /trac1 の内容を提供し続けます...
したがって、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>
誰かが別の構成などを提案した場合は、それも歓迎します。ありがとう!
ヘクター