码迷,mamicode.com
首页 > 其他好文 > 详细

环境变量LD_LIBRARY_PATH的传递

时间:2017-08-18 23:49:32      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:fas   动态   open   erro   bbs   变量   文件   conf   动态库   

 

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 一直失败!!

环境变量LD_LIBRARY_PATH的传递

标签:fas   动态   open   erro   bbs   变量   文件   conf   动态库   

原文地址:http://www.cnblogs.com/johnsonshu/p/7392507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!