尝试动态加载python模块时{apache2崩溃

时间:2017-02-21 12:07:42

标签: django apache azure ubuntu mod-wsgi

我有一个Django应用程序,它具有以下代码init:

import importlib

def get_class(m):
    module_name, class_name = m.rsplit('.', 1)
    module = importlib.import_module(module_name)       
    return getattr(module, class_name)

每当我发出需要调用此函数的请求时,在error.log中我看到child pid 27228 exit signal Segmentation fault (11), possible coredump in /etc/apache,请求失败,错误代码为500。

奇怪的是,如果我从命令行调用该函数,一切都运行良好。似乎mod_wsgi不允许动态加载python模块。

我尝试使用所有组合执行以下操作:

  1. 使用虚拟环境

  2. 下载了python 3.6的源代码,编译并安装了它,

  3. 为默认的python 3.4.3和新的python重新编译了mod_wsgi 3.6。

  4. 错误始终相同:

    操作系统:Ubuntu Server 14.04 Apache:2.4.7 Python:3.4.3,3.6.0

    在我的Ubuntu桌面14.04上一切正常。 Apache由sudo apt-get install apache2

    安装 /etc/apache2/sites-enabled/000-default.conf

    中的

    <Directory /my/django/app/appp>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>
    WSGIDaemonProcess myapp python-path=/my/django/app
    WSGIProcessGroup myapp
    WSGIScriptAlias / /my/django/app/app/wsgi.py
    WSGIApplicationGroup %{GLOBAL}
    

    更新:

    我已经下载并编译了apache2并重新编译了mod_wsgi。仍然是同样的问题。

    更新2: 不确定这是否有帮助,但操作系统位于使用Ubuntu Server 14.04的Azure VM上

0 个答案:

没有答案