django,apache,mod_wsgi和python py-scrypt没有一起工作

时间:2011-04-05 12:50:52

标签: python django apache mod-wsgi scrypt

我正在运行一个ec2实例来托管一些Django网站。这些网站由Apache使用mod_wsgi

提供服务

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

在开发服务器上,一切都像魅力一样,但是当我们部署到我们的实时服务器时,我们会收到500内部服务器错误。 apache日志给我以下消息

  

脚本标题的提前结束:socialmarketingplatform.wsgi,referer:

当我取消注释使用scrypt模块的行时,一切正常。此外,当我运行带有scangpt的Django交付的服务器时,一切都可以在实时服务器上运行。所以它是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 *:80>
    #Basic setup
    ServerAdmin [removed email]
    ServerName luxdevelopment.net
    ServerAlias [sub domain]
    DocumentRoot /var/www/vhosts/[sub domain]/socialmarketingplatform/

    Alias /media/admin /usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/contrib/admin/media
    Alias /media /var/www/vhosts/[sub domain]/socialmarketingplatform/media
    <Location media="">
        SetHandler None
    </Location>

    LogLevel warn
    ErrorLog  /var/log/httpd/smp_error.log
    CustomLog /var/log/httpd/smp_access.log combined

    WSGIDaemonProcess luxdevelopment.net user=apache group=apache threads=25
    WSGIProcessGroup luxdevelopment.net

    WSGIScriptAlias / /var/www/cgi-bin/socialmarketingplatform.wsgi
</VirtualHost>

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

1 个答案:

答案 0 :(得分:1)

请参阅:

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

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

如果只在该守护进程组中运行应用程序,则快速补救:

WSGIApplicationGroup %{GLOBAL}

这将解决因Python破解的第三方扩展模块导致的崩溃,这些扩展模块无法正确编写以便在子解释器中工作。

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