繁体   English   中英

如何为apache2 mod_cgi指定Perl版本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM