Странное поведение с двумя экземплярами Trac под Apache + mod_wsgi
Я пытаюсь настроить два экземпляра Trac для доступа к ним через браузер, каждый из которых имеет свой URL:
http://trac.domain.com/trac1
http://trac.domain.com/trac2
В первый раз, когда я получаю к ним доступ, Apache отвечает нормально, я получаю первый Trac с /trac1, затем второй в /trac2. Но когда я снова получаю доступ к /trac1, он продолжает давать мне содержимое второго Trac (/trac2). Если я прикасаюсь к файлу конфигурации.wsgi для первого (скажем, trac1.wsgi), а затем снова запрашиваю / trac1 в браузере, я снова получаю ожидаемое содержимое.
Противоположный случай работает одинаково: access /trac2, затем /trac1, затем / trac2 продолжает выдавать содержимое /trac1, пока я не коснусь trac2.wsgi...
Таким образом, кажется, что Python, mod_wsgi и / или Apache кешируют результаты или что-то в этом роде. Я не сисадмин и не могу получить больше по этому вопросу.
Файлы.wsgi и http.conf для Apache:
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>
Если кто-нибудь предложит альтернативную конфигурацию или что-то еще, это будет приветствоваться. Спасибо!
задирать
2 ответа
Я сам нашел решение, оно было в документации по Trac (раздел "Важное примечание"), и я даже не взглянул, глупец: P
Переместите тайник с яйцами в отдельные каталоги
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