[英]How to specify Perl version for apache2 mod_cgi?
我在Fedora 21系统上安装了其他版本的Perl。 在PATH上,我的自定义Perl(5.10.0)优先于发行版的默认Perl(5.18.4)
user$ perl -v
> This is perl, v5.10.0 built for x86_64-linux
root# perl -v
> This is perl, v5.10.0 built for x86_64-linux
但是,在Apache提供的脚本中打印Perl版本时,它似乎使用了“错误”版本:
5.018004
如何指导Apache使用特定版本的Perl?
使用普通CGI时,OS(通过#!行)负责选择解释器。 正如我们所建立的那样,shebang指向了错误的翻译版本。
最简单的方法是编辑它。 如果你需要相同的脚本来处理两个不同的perl版本,具体取决于调用上下文,你可以在shebang中使用类似#!/usr/bin/env perl
的东西让它尊重环境,然后为apache更改PATH
变量。
如果你不能编辑shebang,可以选择通过mod_perl
(确保你根据所需的版本编译它),如果你不介意使用这个特定版本的整个网络服务器。
另一种方法是在某种容器(chroot,lxc,docker或仅使用mount命名空间)中运行web服务器,以便你的/usr/bin/perl
指向其他版本的解释器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.