2

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>

誰かが別の構成などを提案した場合は、それも歓迎します。ありがとう!

ヘクター

4

2 に答える 2

2

私は自分で解決策を見つけました.Tracのドキュメント(「重要な注意」セクション)にありました.

http://trac.edgewall.org/wiki/TracModWSGI

于 2009-10-08T18:40:17.917 に答える
0

卵のキャッシュを別のディレクトリに移動します

trac1.wsgi:

import os

os.environ['TRAC_ENV'] = '/home/myuser/trac/trac1' 
os.environ['PYTHON_EGG_CACHE'] = '/tmp/trac1'

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/trac2'

import trac.web.main
application = trac.web.main.dispatch_request
于 2009-10-08T17:15:21.847 に答える