gpt4 book ai didi

Django WSGI 应用程序 SegFault

转载 作者:行者123 更新时间:2023-12-01 22:35:48 24 4
gpt4 key购买 nike

所以我通过 apache 2.22 在 mod_wsgi 中的 django wsgi 应用程序遇到了段错误

这是 wsgi 应用程序:

import os
import sys

sys.path.append('/home/***.com/zpencerq')
sys.path.append('/home/***.com/zpencerq/part')

os.environ['DJANGO_SETTINGS_MODULE'] = 'part.settings'

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

这是日志中的错误:

[Mon Jun 18 18:13:39 2012] [info] mod_wsgi (pid=78535): Create interpreter 'www.***.com|'.
[Mon Jun 18 18:13:39 2012] [info] [client 128.227.57.184] mod_wsgi (pid=78535, process='***', application='www.***.com|'): Loading WSGI script '/usr/home/***.com/zpencerq/part/apache/django.wsgi'.
[Mon Jun 18 18:13:39 2012] [error] [client 128.227.57.184] Premature end of script headers: django.wsgi
[Mon Jun 18 18:13:40 2012] [notice] child pid 78535 exit signal Segmentation fault (11)

这是 mod_wsgi 的库引用:

root@seese# ldd /usr/local/apache/modules/mod_wsgi.so
/usr/local/apache/modules/mod_wsgi.so:
libpython2.7.so.1 => /usr/local/lib/libpython2.7.so.1 (0x28300000)
libutil.so.7 => /lib/libutil.so.7 (0x2819f000)
libm.so.5 => /lib/libm.so.5 (0x281ac000)
libc.so.7 => /lib/libc.so.7 (0x28080000)
libthr.so.3 => /lib/libthr.so.3 (0x281c1000)

这里是加载的模块:

Loaded Modules:
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
deflate_module (static)
log_config_module (static)
env_module (static)
setenvif_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
status_module (static)
autoindex_module (static)
asis_module (static)
suexec_module (static)
cgi_module (static)
negotiation_module (static)
dir_module (static)
actions_module (static)
userdir_module (static)
alias_module (static)
so_module (static)
php5_module (shared)
wsgi_module (shared)
Syntax OK

以下是模块中编译的内容:

root@seese# httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_deflate.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_suexec.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c

这里有一些Python的好东西:

root@seese# ls -l /usr/local/bin/python*
lrwxr-xr-x 1 root wheel 7 Jun 17 13:30 /usr/local/bin/python -> python2
lrwxr-xr-x 1 root wheel 14 Jun 17 13:30 /usr/local/bin/python-config -> python2-config
-r-xr-xr-x 1 root wheel 3420 Mar 6 01:22 /usr/local/bin/python-shared2.7
-r-xr-xr-x 1 root wheel 1631 Mar 6 01:22 /usr/local/bin/python-shared2.7-config
lrwxr-xr-x 1 root wheel 9 Jun 17 13:30 /usr/local/bin/python2 -> python2.7
lrwxr-xr-x 1 root wheel 16 Jun 17 13:30 /usr/local/bin/python2-config -> python2.7-config
-rwxr-xr-x 1 root wheel 8084 Jun 17 13:30 /usr/local/bin/python2.7
-rwxr-xr-x 1 root wheel 1624 Jun 17 13:30 /usr/local/bin/python2.7-config

我已经从事这个工作很长时间了,哈哈,并且对一路上出现的许多头痛感到非常沮丧。如果有人(也许是格雷厄姆·邓普尔顿!)可以帮助我,那就太棒了

最佳答案

引用自mod_wsgi docs :

Q: Why when first request is made against a WSGI application does the Apache server process handling the request crash with a 'segmentation fault'?

A: This is nearly always caused due to a shared library version conflict. That is, Apache or some Apache module is linked against a different version of a library than that which is being used by a particular Python module that the WSGI application makes use of. The most common culprits are the expat and MySQL libraries, but it can also occur with other shared libraries.

Another cause of a process crash only upon the first request can be a third party C extension module for Python which has not been implemented so as to work within a secondary Python sub interpreter. The Python bindings for Subversion are a particular example, with the Python module only working correctly if the WSGI application is forced to run within the first interpreter instance created by Python.

Further information on these problems can be found in various sections of Application Issues. The problems with the expat library are also gone into in more detail in Issues With Expat Library.

我发现您在 /usr/local/ 处安装了 Apache 和 Python,因此我假设您已经编译了它们。您必须确保代码中使用的 C 扩展也链接到正确的版本。另一种选择是,您正在使用一些有缺陷的模块,当通过 mod_wsgi 加载时,该模块的行为会很糟糕。

您可以在没有 mod_wsgi 的情况下运行您的应用程序,例如运行 ./manage.py 吗?

关于Django WSGI 应用程序 SegFault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11092089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com