2

我在同一台服务器上有两个基于 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 在守护模式下使用 WSGI。

解决方案

使用守护程序模式: http: //modwsgi.readthedocs.org/en/latest/configuration-directives/WSGIDaemonProcess.html

4

1 回答 1

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。

于 2012-08-22T03:31:12.890 回答