【发布时间】:2019-08-15 11:48:05
【问题描述】:
我注意到,如果我在 VirtualHost apache2 配置中更改 DocumentRoot,则 perl @INC 也会从
/opt/perl/lib/perl5/site_perl/5.28.0/x86_64-linux
/opt/perl/lib/perl5/site_perl/5.28.0
/opt/perl/lib/perl5/5.28.0/x86_64-linux
/opt/perl/lib/perl5/5.28.0
到
/var/www_local/WWWHub
/var/www_local/WWWHub/work
/etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.22.1/
/Usr/local/share/perl/5.22.1
/usr/lib/x86_64-linux-gnu/perl5/5.22
/usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.22
/usr/share/perl/5.22
/usr/local/lib/site_perl
/usr/lib/x86_64-linux-gnu/perl-base
因此,如果 CGI 脚本具有 CPAN 模块依赖项,它将无法正确运行。
为什么会发生?
【问题讨论】:
-
看起来您的服务器上有两个 Perl 安装,即更改
DocumentRoot更改了执行 CGI 脚本的 Perl 二进制文件。我有根据的猜测是您将 Perl 5.28.1 安装为/opt/perl/bin/perl并将 Perl 5.22.1 安装为/usr/bin/perl。