在守护进程中配置mod_wsgi的服务器上运行Trac时,Trac会抛出许多表单错误:“脚本标头过早结束”。我已经研究过了,看起来Trac和Apache之间的expat库版本不匹配。可悲的是,我无法重建Apache,这似乎是解决这个问题的唯一解决方案。
我想知道是否有其他解决方案可行。当我在嵌入模式下运行时,此问题消失。是否可以为以嵌入模式运行的Trac请求配置虚拟主机,而其他请求是由配置为守护进程模式的主机处理的?由于Django项目,我们使用守护进程模式,因此我们不必在代码更改时重新启动服务器。但是我不知道以这种方式设置是否可以解决问题,或者甚至可以进行这样的设置。
答案 0 :(得分:0)
在嵌入式模式下运行并不能解决问题。消息可能会消失,但您的Apache子进程可能仍然崩溃,但是他们这样做可能不会像主Apache错误日志显示“分段错误”那样明显,而其他方面很少。
当你说你看过这个时,你是否通过运行mod_wsgi网站上记录的测试来确认它是外来问题?
我问expat问题不是Trac崩溃的唯一原因。在子解释器中使用Python包装器进行颠覆也会导致问题。那么,您是否尝试过设置的文档解决方法:
WSGIApplicationGroup %{GLOBAL}
你是否已经使用gdb进行分析,其中代码再次崩溃,如mod_wsgi wiki所述。
关于Trac是否可以在嵌入式模式下运行以及Django是否在守护进程模式下运行的问题,是的,可以这样做,但从我所看到的情况来看,它可能无法解决问题。