http://bbs.chinaunix.net/thread-3680861-1-1.html
execv明显没有传环境变量,execle或execve才会带
在启动shell设置的LD_LIBRARY_PATH根本传不到b程序
http://bbs.pediy.com/thread-217130.htm
为了使 Set-UID 程序更加安全,不受LD_LIBRARY_PATH
环境变量的影响,
运行时的链接器或加载器(ld.so
)会忽略环境变量,如果程序是个 Set-UID 程序。
http://www.cnblogs.com/tonychai/p/4624979.html
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是默认登出后就失效
同样事例,可惜没有方案:
apache httpd 如何修改 LD_LIBRARY_PATH,一直修改失败
ver:httpd 2.4.7 mod_fcgid-2.3.9
目前使用 mod_fcgid-2.3.9 解析C/C++编写的fastcgi和cgi,名称是 a.fcgi,发现无法启动,
错误是
error while loading shared libraries: liblog4cplus-1.1.so.9: cannot open shared object file: No such file or directory
因为我们准备写的cgi 需要链接一个动态库 liblog4cplus-1.1.so.9。
但是发现无法修改 LD_LIBRARY_PATH,我们不希望这个动态库放到系统目录下,或者修改全局的/etc/ld.so.conf,
所以放到了一个指定的目录 /usr/local/aa/liblog4cplus-1.1.so.9下。我们修改了下面的文件
/usr/local/apache/bin/envvars
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf
对应增加了(/usr/local/aa),大致语法如下
SetEnv LD_LIBRARY_PATH /usr/local/apache/lib:/usr/local/aa
SetEnv LD_LIBRARY_PATH_a ${LD_LIBRARY_PATH}:/usr/local/aa
LoadModule fcgid_module modules/mod_fcgid.so
后面我们发现,变量 LD_LIBRARY_PATH_a ,cgi 能读取到,但是变量 LD_LIBRARY_PATH
无法修改,一直都是 LD_LIBRARY_PATH=/usr/local/apache/lib。
导致链接指定动态库的 cgi 一直失败!!!