Apache cgi脚本的LD_库路径 我在C++中构建了.cGi。此二进制文件依赖于特定文件夹中的一些boost共享库和其他资源/usr/local/boost/。CGI没有执行,在日志中我可以看到错误 error while loading shared libraries: libdxxx: cannot open shared object file: No such file or dire

Apache cgi脚本的LD_库路径 我在C++中构建了.cGi。此二进制文件依赖于特定文件夹中的一些boost共享库和其他资源/usr/local/boost/。CGI没有执行,在日志中我可以看到错误 error while loading shared libraries: libdxxx: cannot open shared object file: No such file or dire,apache,cgi,environment-variables,cgi-bin,Apache,Cgi,Environment Variables,Cgi Bin,现在,我已经阅读了许多日志,它们说我必须在httpd.conf中设置以下内容,但仍然不起作用 SetEnv LD_LIBRARY_PATH /usr/local/boost: 在我的配置中,我在配置文件的末尾设置了这一行“原样”,而没有包含在任何VirtualHOst或Directory部分中。我试图插入cgi bin的目录,但仍然是一样的 <Directory "/var/www/cgi-bin"> AllowOverride None Options

现在,我已经阅读了许多日志,它们说我必须在
httpd.conf
中设置以下内容,但仍然不起作用

   SetEnv LD_LIBRARY_PATH /usr/local/boost:
在我的配置中,我在配置文件的末尾设置了这一行“原样”,而没有包含在任何
VirtualHOst或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>
我还发现
httpd
继承了运行它的ROOT用户的环境变量;作为root用户,我调用以下命令来启动Apache,并且LD_LIBRARY_路径设置正确,但仍然存在一些问题

 /etc/init.d/httpd start

我使用的是Red Hat 6.2。

在我们的Linux Debian框中,我们使用:

创建一个配置文件,在其中添加字符串/usr/local/boost:

/etc/ld.so.conf.d/boost.conf
然后运行:

# ldconfig
最后:

# /etc/init.d/apache2 restart

我不知道戴红帽子怎么做。

嗨,杰古!谢谢。这将解决这个问题,但它会自动更改我的所有应用程序的库搜索路径。你知道还有其他解决方案吗?你能重新组合你所有的个人。所以在一些合理数量的目录中,每行将它们添加到一个配置文件中吗?我会试试。希望不会对我的同事产生影响。无论如何,这是我问题的一个解决方案,并且给了我关于更好地规划未来文件夹的想法。您对SetEnv LD_LIBRARY_PATH/opt/ibm/db2/V9.7/lib64发表了评论吗?或者复制你所有的。那么在/usr/local/lib中呢?嗨,jacouh。是的,我在myconfig.conf中这样做了(并更正了邮件中的一个小错误),您已经:#/usr/local/boost,“#”被删除了?我临时切换到MONGOOSE,所有人都立即在10分钟内完成了工作。
# /etc/init.d/apache2 restart