Apache FastCGI Python链接错误

Apache FastCGI Python链接错误,python,apache,fastcgi,ld,Python,Apache,Fastcgi,Ld,我有一个正在使用的FastCGI web服务,由于以下错误,该服务当前已损坏: ImportError: /proj/issm-web/trunk/lib/IssmConfig.so: undefined symbol: PyUnicodeUCS2_FromString 这个错误的原因是我使用的Python安装与系统范围的安装不同。显然,当我重新启动Apache2服务器时,错误的库被拾取 为了解决这个问题,我尝试修改: /etc/apache2/envvars 在此文件中,我附加了以下内容:

我有一个正在使用的FastCGI web服务,由于以下错误,该服务当前已损坏:

ImportError: /proj/issm-web/trunk/lib/IssmConfig.so: undefined symbol: PyUnicodeUCS2_FromString
这个错误的原因是我使用的Python安装与系统范围的安装不同。显然,当我重新启动Apache2服务器时,错误的库被拾取

为了解决这个问题,我尝试修改:

/etc/apache2/envvars
在此文件中,我附加了以下内容:

 export LD_LIBRARY_PATH="/proj/issm-web/trunk/externalpackages/python/install/lib:${LD_LIBRARY_PATH}"
 ldd `which python` >> ${TEST_FILE}
这将得到令人满意的结果:

linux-vdso.so.1 =>  (0x00007ffff25ff000)
libpython2.7.so.1.0 => /proj/issm-web/trunk/externalpackages/python/install/lib/libpython2.7.so.1.0 (0x00007f236db18000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f236d8db000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f236d51b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f236d317000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f236d114000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f236ce17000)
/lib64/ld-linux-x86-64.so.2 (0x00007f236def2000)
换句话说,不仅启动了正确的Python可执行文件,而且还选择了正确的库

此外,我可以证实:

/proj/issm-web/trunk/externalpackages/python/install/lib/libpython2.7.so.1.0
包含适当的符号:

readelf -s $ISSM_DIR/externalpackages/python/install/lib/libpython2.7.so.1.0 | grep'PyUnicodeUCS2_FromString'
316: 00000000000bd0e0   312 FUNC    GLOBAL DEFAULT   11 PyUnicodeUCS2_FromStringA
606: 00000000000bd220    58 FUNC    GLOBAL DEFAULT   11 PyUnicodeUCS2_FromString
4036: 00000000000bd0e0   312 FUNC    GLOBAL DEFAULT   11 PyUnicodeUCS2_FromStringA
4241: 00000000000bd220    58 FUNC    GLOBAL DEFAULT   11 PyUnicodeUCS2_FromString
不幸的是,我仍然看到同样的错误。我唯一能想到的是,当我重新启动Apache时,我正在设置的环境变量没有得到尊重

以下是一些可能有用的信息:

apache2 -version
Server version: Apache/2.2.22 (Ubuntu)
Server built:   Jul 12 2013 13:37:10

uname -a
Linux thwaites 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

有人能帮我解决这个问题吗?

问题最终在于FastCGIServer是如何启动的。不幸的是,默认情况下环境变量不是从Apache传播的

为了将LD_LIBRARY_路径传递给FastCGIServer,我必须修改

 /etc/apache2/sites-available/default
包括:

 -initial-env LD_LIBRARY_PATH
当启动FastCGIServer时