已经有几天了,我一直在努力使旧的 Perl 脚本在 apache2 服务器中作为 cgi 工作。它需要 Crypt::OpenSSL::AES。从 Apache 错误日志:
Can't locate Crypt/OpenSSL/AES.pm in @INC
Run Code Online (Sandbox Code Playgroud)
最简单的方法是,如果 ubuntu 软件包可以与我一起安装,但我无法找到任何包含正确文件的软件包。以下内容不返回任何内容:
apt-file search AES.pm
Run Code Online (Sandbox Code Playgroud)
作为一个普通用户,我已经安装了CPAN,并用它来安装Perl模块,让地穴:: OpenSSL的:: AES是我的用户目录下安装了/home/user/.cpan/build/Crypt-OpenSSL-AES-0.02-H74J64/lib
。不幸的是,无论我是手动将 AES.pm 复制到其正确位置(/usr/local/lib/perl/5.10.1/...
根据 @INC)还是在 apache2 配置文件 ( SetEnv PERL5LIB /home/user/.cpan/build/Crypt-OpenSSL-AES-0.02-H74J64/lib
) 中添加 PERL5LIB 环境变量,错误日志现在都显示缺少共享对象:
Can't locate loadable object for module Crypt::OpenSSL::AES in @INC
Run Code Online (Sandbox Code Playgroud)
错误消息与第一个略有不同(一开始我没有注意到):现在它确实找到了 AES.pm,但是还有另一个依赖于未指定的“可加载对象”,我不知道是哪个。Openssl 安装在我的系统上。
所以:
通常,安装 perl 模块以使用 apache2 服务器的正确方法是什么(在 Linux-ubuntu 系统上)?(我搜索了这个问题有很多答案,但它仍然不起作用)。
具体来说,我如何才能正确满足我的 cgi perl 应用程序对 Crypt::OpenSSL::AES 的依赖?
我解决了我的问题:
安装包
Debian 和 Ubuntu
aptitude install libssl-dev
Run Code Online (Sandbox Code Playgroud)
CentOS 或 Fedora
yum install -y openssl-devel`
Run Code Online (Sandbox Code Playgroud)手动编译模块
sudo cpan Crypt/OpenSSL/AES.pm
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
14267 次 |
最近记录: |