使用ctypes loadlibrary从守护进程接收的截断或超大响应头

时间:2016-07-29 11:42:29

标签: django apache mod-wsgi ctypes

您好我在尝试加载通过apache部署的网页时收到以下消息

  

"从守护进程"

收到的截断或超大响应标头

并在apache日志中

  

[info] mod_wsgi(pid = 16368):初始化Python   [info] mod_wsgi(pid = 16368):处理' esapp'已经死亡,注销并重新启动它   [info] mod_wsgi(pid = 16368):处理' esapp'由信号1终止   [info] mod_wsgi(pid = 16368):处理' esapp'已取消注册,将不再受到监控。

我正在使用ctypes模块在这样的django项目的设置文件中加载cpp库

VELEC_API_LIB = ctypes.cdll.LoadLibrary('/var/www/eswebsite/libvelec.so')

如果我停止加载我的cpp .so库并重新启动apache,它运行正常,我可以加载网页。但是当我尝试加载我的.so库时,每次都会出现上述错误。

我想加载我的.so库,因为它是我在c-side项目的一部分。

任何帮助将不胜感激?

1 个答案:

答案 0 :(得分:0)

加载扩展程序时,此过程会崩溃。

尝试在Apache配置中设置指令:

WSGIApplicationGroup {GLOBAL}

这强制使用主Python解释器上下文,它可以帮助扩展模块,这些扩展模块没有正确实现以在子解释器中工作。

如果这没有帮助,问题可能是扩展模块需要一个共享库,但它没有正确链接,因此在尝试调用它时会崩溃。