WSGI加载了错误项目的设置:如何调试?

时间:2012-08-21 15:29:07

标签: django mod-wsgi

我在同一台服务器上有两个基于django的Web应用程序。 其中一个我称之为 CORRECT_PROJECT ,另一个 WRONG_PROJECT

最后一个CORRECT_PROJECT是使用虚拟环境安装的,并使用不同版本的django(1.4)。有一个非常奇怪的问题:有时候,通常在注销或电子邮件确认后(但有时看起来只是随机!),服务器返回 500内部服务器错误,错误日志显示

  

“无法导入设置'WRONG_PROJECT.settings'(是否在sys.path上?):没有模块名称WRONG_PROJECT.settings,请参阅:CORRECT_PROJECT / URL”

也就是说,通过加载CORRECT_PROJECT,有时系统(WSGI?Apache?Django?)会尝试从WRONG_PROJECT加载设置。

通过积极地点击刷新,错误消失。 可能有什么不对?我该如何调试?

CORRECT_PROJECT在deamon模式下使用WSGI。

解决方案

使用deamon模式:http://modwsgi.readthedocs.org/en/latest/configuration-directives/WSGIDaemonProcess.html

1 个答案:

答案 0 :(得分:6)

您正在使用Django 1.4中的wsgi.py。在同一进程中托管多个Web应用程序时,这将无效。

最佳解决方案是使用守护程序模式并将每个模式委派给不同的守护程序进程组。

如果无法做到这一点,请更改两者的wsgi.py文件,以便它们不使用:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

但改为使用:

os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"

根据需要更改mysite.settings。