Django、apache、mod\wsgi和python pyrscrypt不能一起工作

2024-05-15 03:55:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个ec2实例来托管一些Django网站。这些网站由Apache使用mod\wsgi提供服务

几天以来,我试图部署一个新的网络平台,我们正在开发,但我遇到了一个似乎不可能解决的问题。出于安全原因,我们使用scrypt 0.4来保护用户的个人信息,如密码。在

在开发服务器上,一切工作都很顺利,但当我们部署到我们的实时服务器时,我们会收到500个内部服务器错误。apache日志给出了以下消息

Premature end of script headers: socialmarketingplatform.wsgi, referer:

当我取消对使用scrypt模块的行的注释时,一切正常。另外,当我运行Django交付的服务器并启用了scrypt时,所有工作都在实时服务器上运行。所以是mod_wsgi、django和scrypt的组合产生了错误。在

我正在使用以下wsgi文件:

import os
import sys

path = '/var/www/vhosts/[sub_domain]'
if path not in sys.path:
    sys.path.append(path)
sys.path.append(path + '/socialmarketingplatform')
os.environ['DJANGO_SETTINGS_MODULE'] = 'socialmarketingplatform.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

以及以下virtualhost配置:

^{pr2}$

我希望有人能帮我解决这个问题。如果有任何进一步的问题,请告诉我。在


Tags: pathdjangoimport服务器modwsgios网站
1条回答
网友
1楼 · 发布于 2024-05-15 03:55:48

参见:

http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions#Apache_Process_Crashes

“脚本头过早结束”消息通常表示您的代码使守护进程崩溃。您可以通过在主Apache错误日志文件中查找分段错误或类似消息来验证这一点。如果您在主Apache config和VirtualHost中启用“LogLevel info”,那么mod\uwsgi将记录有关守护进程重新启动的更多信息。在

如果只在该守护进程组中运行应用程序,一个快速的补救方法是添加:

WSGIApplicationGroup %{GLOBAL}

这将解决由于Python的第三方扩展模块损坏而导致的崩溃,这些模块没有正确编写以在子解释器中工作。在

除此之外,可能是共享库版本不匹配,如常见问题解答中所述。在

相关问题 更多 >

    热门问题