使用DBI将httpd24连接到Informix的Redhat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用DBI将httpd24连接到Informix的Redhat相关的知识,希望对你有一定的参考价值。

我对此很敏感。我有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变量都设置正确。

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

答案

它将不再使用我在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}}

一切都恢复正常。哇噢!

以上是关于使用DBI将httpd24连接到Informix的Redhat的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Perl 调用 Informix 存储过程?

无法将 Spring Boot 应用程序连接到 IBM Informix 数据库

如何连接到旧版 Informix 数据库?

在 Linux 上从 .NET Core 连接到 Informix

无法通过php连接到informix数据库

如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段