Nginx编译安装Perl模块引起的 nginx:Can't locate nginx.pm 错误
有时候,服务器nginx需要使用Perl模块,于是进行编译安装添加此模块,在安装过程中,会遇到如下问题,随手记录下,以供各位参考:
一、编译安装nginx,报出错误:Can't locate ExtUtils/Embed.pm in @INC (@INC contains: /usr/local/lib64/perl5
解决办法:
# yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
# yum install perl-ExtUtils-Embed -y
如果不想用cpan安装,那就使用下面这条命令:
yum install perl-ExtUtils-Embed -y
安装完上述依赖后,就可以继续安装完成了。
二、如果启动nginx报错:
正在启动 nginx:Can't locate nginx.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 .).
BEGIN failed--compilation aborted.
nginx: [alert] perl_parse() failed: 2
这是因为我们在重新编译安装nginx的Perl模块时,没有进行make install,导致http_perl_module加载异常,需要将以下文件复制到指定目录:
# mkdir -p /usr/local/lib64/perl5/auto/nginx
# cp objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.bs objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so /usr/local/lib64/perl5/auto/nginx/
# cp objs/src/http/modules/perl/blib/lib/nginx.pm /usr/local/lib64/perl5/
留言评论