請參閱brian d foy的回答,爲什麼不期望使用perlbrew在mod_perl的版本之間切換。如果您需要mod_perl下的多個不同的Perl版本,我也希望您需要運行多個Apache服務器。
但是,使用perlbrew作爲構建Perl的簡單方法是恕我直言,這是一個有效的事情,並且有幾條指令可用於如何在perlbrew下運行mod_perl。
首先確保perl的是建立與共享庫的支持,通過傳遞-Duseshrplib標誌(否則在64位系統中,您將獲得有關-fPIC一個令人困惑的構建失敗):
perlbrew install perl-5.16.3 -Duseshrplib
安裝Apache的開發圖書館爲您的系統。在Debian上,這取決於您使用的Apache MPM。對於prefork的MPM:
sudo apt-get install apache2-prefork-dev
或爲工人MPM:
sudo apt-get install apache2-threaded-dev
然後你需要一些選項來構建和安裝mod_perl2到正確的地方。注意,這意味着cpanm將無法建造它,但你可以用它來獲取源的保持:
cpanm mod_perl2 # fails
cd ~/.cpanm/latest-build/mod_perl-2.0.8/ # adjust mod_perl version
調整的Perl的版本低於相應。 (該MP_APXS選項是給予基於Debian的系統,你可能並不需要正確的道路。)
perl Makefile.PL MP_APXS=/usr/bin/apxs2 \
MP_AP_DESTDIR=$HOME/perl5/perlbrew/perls/perl-5.16.3/
make
make install
最後,在你的Apache配置文件修改LoadModule這一行(相應地調整路徑):
LoadModule perl_module <your homedir>/perl5/perlbrew/perls/<your perl>/usr/lib/apache2/modules/mod_perl.so
你的mod_perl安裝現在將運行你想要的Perl版本。安裝所有必需的CPAN模塊並開始工作。
這似乎是在Apache中使用perlbrow管理不同Perl和mod_perl版本的唯一解決方案。請注意......如果您的Apache實例以不同的用戶身份運行,那麼您需要使該用戶可以訪問本地Perl安裝。我在安裝了perlbrew的用戶的主目錄中使用「chmod 777 -R ./」在我的測試安裝中執行了此操作。 – 2014-03-18 12:28:52