我正在尝试为 Apache Web 服务器设置环境变量,因为它不是正确的 Perl 包。我按照 Server Fault 上一个答案的建议更新了 httpd 文件并添加了环境变量,但仍然不起作用。更新 httpd 文件后,我也退出了 httpd 进程。在命令行上,Perl 使用了正确的 PATH。有人可以提供任何指导吗?
apache error.log 文件中的错误:
[pid 29460] [client 10.199.106.141:57768] AH01215: install_driver(Informix) failed: Can't locate DBD/Informix.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 7)
Apache 应检查 Perl 模块的正确位置
/usr/bin/perl
更新了 /etc/sysconfig/httpd 文件
#Configuration of variables for webserver
export INFORMIXDIR=/opt/informix
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/tools
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
PATH=$PATH:$HOME/bin:$INFORMIXDIR/bin:$LD_LIBRARY_PATH
export PATH
其他环境变量
OS Package: Apache/2.4.6 (Red Hat Enterprise Linux) PHP/5.4.16
CONTEXT_DOCUMENT_ROOT = /var/www/cgi-bin/
答案1
你的错误
在@INC 中找不到 DBD/Informix.pm
意味着缺少 Perl 模块数据库管理系统::Informix。有多种方式可以获取此模块:
- 在 Red Hat 上,Fedora 系统或者centos系统:
yum install perl-DBD-Informix
- 在 Debian 或 Ubuntu 上:
apt-get install libdbd-informix-perl
- 使用减法创建本地库:
cpanm DBD::Informix
- 使用中央处理器
如果您已经从发行版安装了一些东西,通常最好继续这样做,但是否则,其中一种更特定于 Perl 的方法(cpanminus 或CPAN.pm
)可能会给您提供一些可行的方法。