perl - 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
知道如何解决这个问题吗?
解决方案
LD_LIBRARY_PATH 需要在 apache http.conf 文件中设置
我在 httpd.conf 中添加了以下行并且它有效
SetEnv LD_LIBRARY_PATH /path/to/libperl
我还使用 yum 从系统中删除了 perl 5.16。
推荐阅读
- javascript - 仅下载 Tabulator 表中的选定行?
- gitlab - 如何在 gitlab 中使用用户名和密码进行 git clone?
- database - 在桌面应用程序和移动应用程序之间同步
- python - 我怎样才能反复延迟随机选择?
- java - 如何在 N-Queen 问题中跳过重复的棋盘状态?
- configuration - Eclipse 未能在 CDT 中保留项目配置设置
- sql - 将数据归档到另一个表的动态存储过程
- c++ - if 指令宏比较
- symfony - 无法在 Symfony 5 本地 Web 服务器上启用 HTTPS
- web - 如何在浏览器游戏中屏蔽多个相同用户?