Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django、apache、mod_wsgi和python py scrypt不能一起工作_Python_Django_Apache_Mod Wsgi_Scrypt - Fatal编程技术网

django、apache、mod_wsgi和python py scrypt不能一起工作

django、apache、mod_wsgi和python py scrypt不能一起工作,python,django,apache,mod-wsgi,scrypt,Python,Django,Apache,Mod Wsgi,Scrypt,我正在运行一个ec2实例来托管一些Django网站。Apache使用mod_wsgi为这些网站提供服务 几天以来,我一直在尝试部署我们正在开发的新Web平台,但我遇到了一个似乎无法解决的问题。出于安全原因,我们用于保护用户的个人信息,如密码 在开发服务器上,一切工作都很顺利,但当我们部署到实时服务器时,会出现500个内部服务器错误。apache日志给了我以下消息 脚本标题过早结束:socialmarketingplatform.wsgi,参考: 当我取消注释使用scrypt模块的行时,一切都正常

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

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

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

脚本标题过早结束:socialmarketingplatform.wsgi,参考:

当我取消注释使用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配置:

<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>

#基本设置
ServerAdmin[已删除电子邮件]
ServerName.net
服务器别名[子域]
DocumentRoot/var/www/vhosts/[子域]/socialmarketingplatform/
别名/media/admin/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/Django/contrib/admin/media
别名/media/var/www/vhosts/[子域]/socialmarketingplatform/media
SetHandler无
日志级别警告
ErrorLog/var/log/httpd/smp_error.log
CustomLog/var/log/httpd/smp_access.log组合
WSGIDaemonProcess luxdevelopment.net用户=apache组=apache线程=25
WSGIProcessGroup luxdevelopment.net
WSGIScriptAlias//var/www/cgi-bin/socialmarketingplatform.wsgi
我希望有人能帮我解决这个问题。如果还有任何问题,请告诉我。

请参阅:

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

如果在该守护进程进程组中仅运行应用程序,则快速解决方法是添加:

WSGIApplicationGroup %{GLOBAL}
这将解决Python的第三方扩展模块损坏导致的崩溃问题,这些模块没有正确编写以在子解释器中工作


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

Argh!不要将代码放在DocumentRoot中!丹尼尔·罗斯曼:这就是为什么我的文档根目录是/var/www/html/如果还不够安全,你有什么建议?也许我误解了你的意思,我会看看我是否能把源文件移出那个文件夹。谢谢你的建议。我的意思是你把DocumentRoot设置为代码的位置,在vhost配置中。丹尼尔·罗斯曼:好的,谢谢你的建议,以后会改变的。我首先要修复这个错误。在我把事情搞混之前,我只是好奇,你是否自己找到了一个解决方案,你可以在这里分享?我猜问题是因为SCrypt是一个C扩展,而不是Python代码。mod_wsgi邮件列表上可能有答案吗?谢谢你的评论,最后我没有解决这个问题。