所以基本上我的apache服务器没有使用与我在os环境中相同的perl版本,这就是为什么有些模块无法正常使用的原因。当我检查错误日志时,它显示无法找到我想要的模块,它指向/users/local/perl6
。
当我在终端中perl -v
时,它会显示this is perl 5, version 16
。重置我的apache服务器以使用正确版本的perl的最佳方法是什么?
答案 0 :(得分:0)
正确的方法是将PATH
env变量配置为右。要查看当前使用的env变量:
#!/usr/bin/env perl
print "Content-Type: text/plain\n";
print "\n\n";
use Data::Dumper qw/ pp /;
print pp \%ENV;
How to setup env variables from apache config
例如,如果要为apache安装特定版本的perl,请将其设置为/home/www/perl
目录(此处我们使用www
用户运行apache服务器)和set PATH
:
SetEnv PATH /home/www/perl/bin
如果需要,请勿覆盖当前PATH
值。
如果你想看看使用了什么perl - 运行:
#!/usr/bin/env perl
print "Content-Type: text/plain\n";
print "\n\n";
print `which perl`
答案 1 :(得分:-1)
运行Apache的特定操作系统可能会对最佳方式产生影响。但是,假设没有mod_perl,我在* nix系统和Windows上使用的一种方法是在脚本的shebang行中包含所需解释器的完整路径。也就是说,脚本的第一行应以"#!"开头。然后是所需的口译员。对于您的服务器,它应该是:
#!/path/to/Perl5/perl