2016-07-29 20 views
1

嗨,我在试图加载通过Apache部署了我的网页截断或过大的响应报头与ctypes的调用LoadLibrary

“从守护进程收到截断或过大的响应报头”得到以下以下信息

和Apache日志

[信息]的mod_wsgi(PID = 16368):初始化的Python。
[info] mod_wsgi(pid = 16368):进程'esapp'已经死亡,取消注册并重新启动它。 mod_wsgi(pid = 16368):进程'esapp'被信号1终止
[info] mod_wsgi(pid = 16368):进程'esapp'已被注销并且不再被监控。

我使用的模块ctypes的设置中的Django项目的文件中像这样

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

加载CPP库如果我停止加载我CPP .so库,并重新启动Apache运行良好,我能够加载网页。但是当我尝试加载我的.so库时,每次都会出现上述错误。

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

任何帮助将不胜感激??

回答

0

当您加载您的扩展时,该过程崩溃。在Apache配置

尝试设置指令:

WSGIApplicationGroup {GLOBAL} 

这种力量主要使用Python解释器上下文可与未正确实现子口译工作扩展模块帮助。

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

+0

嗨格雷厄姆我仍然得到这个消息。 我应用了你的建议,但没有奏效。任何工作? –

+0

如果你运行ldd/var/www/eswebsite/libvelec.so',你会得到什么?确保在运行时不会设置LD_LIBRARY_PATH环境变量。 –

+0

gettig以下--- linux-vdso.so.1 =>(0x00007fff0e1ff000) libcrypt.so.1 => /lib64/libcrypt.so.1(0x00007fafb4df1000) libnsl.so.1 =>/lib64/libnsl .so.1(0x00007fafb49d3000) libpthread.so.0 => /lib64/libpthread.so.0(0x00007fafb47b6000) libz.so.1 => /lib64/libz.so.1(0x00007fafb459f000) libstdC++。so.1。 6 => /usr/lib64/libstdc++.so.6(0x00007fafb4299000) libm.so.6 => /lib64/libm.so.6(0x00007fafb4015000) libgcc_s.so.1 => /lib64/libgcc_s.so。 1(0x00007fafb3dfe000) libc.so.6 => /lib64/libc.so.6(0x00007fafb3a6a000) /lib64/ld-linux-x86-64.so.2(0x0000003e21600000) –