使用DBI将httpd24连接到Informix的Redhat

问题描述 投票:2回答:1

我对此很敏感。我有2个RH7盒子,我刚刚安装了httpd24(v2.4.34)。他们运行httpd(v2.4.6)没有任何连接问题。现在,当我尝试从浏览器运行Perl脚本时,它们会失败...

install_driver(Informix) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Informix/Informix.so' for module DBD::Informix: libifsql.so: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190.
 at (eval 5) line 3.
Compilation failed in require at (eval 5) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at /var/www/html/app/cgi-bin/test_informix_odbc.cgi line 35.

但是当我从命令行运行相同的脚本时,就像'apache'一样,它运行得很好。所有ENV变量都设置正确。

以前有人遇到过类似的事吗?

apache perl odbc informix
1个回答
0
投票

它将不再使用我在httpd.conf中设置的LD_LIBRARY_PATH环境变量。

服务在新环境中启动,不受用户环境的影响(如环境变量值)。因此,在服务启动期间,所有已启用的集合的信息将丢失。

较新版本的httpd已停止在启动服务时引入用户环境。我在/ opt / rh / httpd24 / service-environment中找到了这个小模糊。

grep -r "LD_LIBRARY_PATH" /opt/rh/httpd24/
/opt/rh/httpd24/enable:export LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

我在/ opt / rh / httpd24 / enable中添加了标准的informix路径。

export LD_LIBRARY_PATH=/opt/IBM/informix/lib:/opt/IBM/informix/lib/esql:/opt/rh/httpd24/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

一切都恢复正常。哇噢!

© www.soinside.com 2019 - 2024. All rights reserved.