我在C++中构建了一个.CGI。这个二进制文件依赖于一些boost
共享库和其他资源在一个特定的文件夹/usr/local/boost/
。该CGI不执行,并在日志中我可以看到错误用于Apache cgi脚本的LD_LIBRARY_PATH
error while loading shared libraries: libdxxx: cannot
open shared object file: No such file or dire
现在,我读过很多日志,这些日志有人说我在httpd.conf
以下设置,但仍然无法正常工作。
SetEnv LD_LIBRARY_PATH /usr/local/boost:
在我的配置我设置这条线“因为它是”在配置文件的末尾,而不包括在任何VirtualHOst or Directory
部分。我试图插入目录的cgi-bin目录,但还是一样
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
SetEnv LD_LIBRARY_PATH /usr/local/boost
</Directory>
我也曾尝试(见下文discurrion)以添加ldconfig的一个.conf文件,但它仍然无法正常工作!
#added a file called myconfig.conf conrtaining a line
/usr/local/boost
/etc/ld.conf.d/
ldconfig (as root)
我也reead是httpd
继承运行它的root用户的环境变量;作为我的根我打电话以下启动Apache和LD_LIBRARY_PATH已正确设置,但仍然是错误的。
/etc/init.d/httpd start
我正在使用Red Hat 6.2。
你在myconfig.conf中有:#/ usr/local/boost,“#”删除了吗? – jacouh
我暂时切换到MONGOOSE,并在10分钟内立即开始工作。 –