Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Apache+;mod_wsgi_Python_Apache_Trac_Mod Wsgi - Fatal编程技术网

Python Apache+;mod_wsgi

Python Apache+;mod_wsgi,python,apache,trac,mod-wsgi,Python,Apache,Trac,Mod Wsgi,我正在尝试配置两个Trac实例,以便通过浏览器访问它们,每个实例具有不同的url: http://trac.domain.com/trac1 http://trac.domain.com/trac2 第一次访问它们时,Apache响应很好,我使用/trac1获得第一个Trac,然后使用/trac2获得第二个Trac。但是,当我再次访问/trac1时,它会不断提供第二个Trac(/trac2)的内容。如果我触摸第一个文件的.wsgi配置文件(比如说trac1.wsgi),然后使用browser再

我正在尝试配置两个Trac实例,以便通过浏览器访问它们,每个实例具有不同的url:

http://trac.domain.com/trac1
http://trac.domain.com/trac2
第一次访问它们时,Apache响应很好,我使用/trac1获得第一个Trac,然后使用/trac2获得第二个Trac。但是,当我再次访问/trac1时,它会不断提供第二个Trac(/trac2)的内容。如果我触摸第一个文件的.wsgi配置文件(比如说trac1.wsgi),然后使用browser再次请求/trac1,我将再次获得预期的内容

相反的情况是相同的:access/trac2,然后是/trac1,然后是/trac2一直提供/trac1的内容,直到我触摸trac2.wsgi

因此,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/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
http.conf:


WSGIScriptAlias/trac1/home/myuser/public\u html/trac1/apache/trac1.wsgi
WSGIScriptAlias/trac2/home/myuser/public\u html/trac2/apache/trac2.wsgi
WSGIApplicationGroup%{GLOBAL}
命令拒绝,允许
通融
AuthType Basic
AuthName“Trac1 Trac Auth”
AuthUserFile/home/myuser/public_html/trac1/apache/trac1.htpasswd
需要有效用户
WSGIApplicationGroup%{GLOBAL}
命令拒绝,允许
通融
AuthType Basic
AuthName“Trac2 Trac Auth”
AuthUserFile/home/myuser/public\u html/trac2/apache/trac2.htpasswd
需要有效用户
如果有人建议另一种配置或其他什么,也会受到欢迎。谢谢


赫克托

将鸡蛋缓存移动到单独的目录

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

我自己找到了解决方案,它在Trac文档(“重要注意事项”部分)上,我没有看事件,傻瓜:p


它不像“重要注意事项”一节所说的那么简单,而且它们描述的配置本身不应该引起问题。所以,我不同意他们的具体例子。我建议你读“和”。后者描述了使用os.environ的问题。但对于Trac,只有在混合使用Trac_ENV和Trac_ENV_PARENT_DIR的情况下才会出现问题。如第一个链接所示,使用mod_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