首页 > 解决方案 > RHEL 7 上的 Perl 5.26 错误 - cgi-error - libperl.so.rh-perl526-5.26:无法打开共享对象文件

问题描述

我正在尝试在 RHEL 7 上运行 perl CGI 脚本,我使用了 yum 安装程序,它已成功安装 5.26,我可以从终端运行 perl 程序没有问题,但是当我运行一个简单的 CGI 脚本时,它会向 httpd/error 写入错误。日志。我在下面发布了确切的错误。

启用软件集合

$scl enable rh-perl526 bash

perl -v

这是为 x86_64-linux-thread-multi 构建的 perl 5,版本 26,subversion 3 (v5.26.3)(有 27 个注册补丁,请参阅 perl -V 了解更多详细信息)

$which perl

/opt/rh/rh-perl526/root/usr/bin/perl

$perl -e 'print "Hello Perl\n"'

你好 Perl

当我从浏览器或 curl -XGET 运行一个简单的 CGI 脚本时,我得到了 500 个内部服务器

http://serverip/cgi-bin/test-cgi.pl

阿帕奇错误

[Wed Mar 24 21:24:38.308033 2021] [cgi:error] [pid 9437] [client x.x.x.x:35220] AH01215: /opt/rh/rh-perl526/root/usr/bin/perl: error while loading shared libraries: libperl.so.rh-perl526-5.26: cannot open shared object file: No such file or directory
[Wed Mar 24 21:24:38.308245 2021] [cgi:error] [pid 9437] [client x.x.x.x:35220] End of script output before headers: test.cgi.pl

我在 .bashrc 中添加了指向 LD_LIBRARY_PATH 变量的 libperl.so 路径,并且安装了 rh-perl526-perl-libs.x86_64 包。

在安装 rh-perl526 时,我注意到由于 YUM 依赖,它还在系统上安装了默认的 perl

知道如何解决这个问题吗?

标签: perlcgirhel7

解决方案


LD_LIBRARY_PATH 需要在 apache http.conf 文件中设置

我在 httpd.conf 中添加了以下行并且它有效

SetEnv LD_LIBRARY_PATH /path/to/libperl

我还使用 yum 从系统中删除了 perl 5.16。


推荐阅读