我在使用 mod_python 在我们的 CentOS 服务器上设置 Django 时遇到了问题。站点“A”运行 PHP(Codeigniter),站点“B”运行 Django。我们的 Django 站点运行正常。
但是,每隔一段时间(可能每 10 个请求中就有 1 个或 2 个),站点“A”就会出现 404 错误。经过进一步调查,我发现 Django 全局设置了许多服务器环境变量。例如,查看站点 A 中的 phpinfo() 页面:
_ENV["DJANGO_SETTINGS_MODULE"] mysite.settings
_ENV["REQUEST_URI"] /path/to/my/django/site/page
由于所有请求路径都设置为我的 Django 站点 URL,因此 Codeigniter 出现 404 错误。
httpd.conf 中的设置是我们在虚拟主机指令内设置位置标签。
有人可以帮忙吗?
答案1
这可能不是你想听到的答案,但无论如何,我还是想说一下 :)
如果你在下面运行你的 Django 网站mod_wsgi
,mod_python
你会看到多个好处:
你可以
mod_wsgi
跑进去守护进程模式,这意味着您的 Django 站点将在其自己的进程中被隔离。这意味着环境变量不会在 Apache 环境中全局设置(我认为在您的情况下是由 设置的mod_python
)。这还意味着您可以重新启动 Django 站点而无需重新启动 Apache。之
mod_wsgi
内守护进程模式中,内存中将只有一个 Python 解释器实例运行,而不是每个 Apache 进程中都有一个实例。这将节省大量内存,让您有更多空间用于缓存、更多 Apache 进程等。mod_wsgi
不仅更加稳定,而且已经足够稳定,以至于每当我们看到有人仍在使用时,我们都会拍拍额头,这就是众多 Django 开发人员中的一员。mod_python
例如:Django 核心开发人员 Jacob Kaplan-Moss 的推文。最后,
mod_wsgi
与零支持和大量错误相比,它速度更快,并拥有出色的社区支持mod_python
。