簡體   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