ベンダーの Apache をセルフコンパイルした Perl および mod_perl で使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/79493

  •  09-06-2019
  •  | 
  •  

質問

Apple または RedHat の組み込み Apache を使用したいのですが、Perl 5.10 と mod_perl も使用したいと考えています。これを達成するための最も煩わしくない方法は何ですか?ベンダーの Apache、dav、php などに無料のセキュリティ パッチを適用できる利点が欲しいのですが、使用する Perl のバージョンと @INC パスに何が含まれているかを非常に気にしています。独自の mod_perl をコンパイルしても構いません。

役に立ちましたか?

解決

  1. mod_perl ドキュメントの特別な指示に従って、Perl 5.10 のバージョンをビルドします。/usr/local/perl/5.10.0 などの標準以外の場所にインストールするように Perl コンフィギュレータに指示します。

  2. ディストリビューションの Apache に対して共有ライブラリ (または動的、または .so) mod_perl を構築する手順を使用しますが、必ず Makefile.PL を次のコマンドを使用して実行してください。 あなたの Perl のバージョン:

    /usr/local/perl/5.10.0/bin/perl Makefile.PL APXS=/usr/bin/apxs

  3. 通常どおり mod_perl をインストールして設定します。

ステップ 1 の後で、使用している Perl のバージョンを誤って混乱しないようにパスを変更すると役立つ場合があります。

export PATH=/usr/local/perl/5.10.0/bin:$PATH

他のヒント

調べてみたくなるでしょう mod_so

以前にもこれをやったことがあります。あまりきれいではありませんでしたが、特にベンダーの Perl は通常 2 ~ 3 年前のものなので、うまくいきました。

私は、perl を別の場所にインストールする独自の perl RPM を作成することから始めました。 /opt/. 。これは非常に簡単でした。新しいモジュールをアップグレード/インストールするときに Perl を使用するシステム ユーティリティが壊れるのが嫌だったので、主にこれから始めました。すべてのスクリプトを変更して指定する必要がありました #!/opt/bin/perl 時にはパスをいじって、自分の Perl が最初に来ることを確認することもありました。

次に、mod_perl ソース RPM を取得し、それを使用するように変更しました。 /opt/bin/perl の代わりに /usr/bin/perl. 。別のライブで行われたため、行った変更にはアクセスできません。それを取得するまでに少し遊んでみました。

それはうまくいきましたが、私は RPM ウィザードではないため、依存関係のチェックはあまりうまくいきませんでした。たとえば、カスタム RPM をアンインストールしてすべてを壊してしまう可能性があります。私にとっては大したことではなかったので、先に進みました。

また、RPM とモジュールの CPAN インストールを混合していました (独自のコードを使用して独自のカスタム CPAN ミラーを構築したことは言いましたか?)。これもちょっと脆かったです。繰り返しになりますが、曲げる方法を理解するためのリソース (つまり、時間) がありませんでした。 cpan2rpm 私の Perl を使用し、RPM の競合を引き起こさないようにするためです。

もしすべてをやり直すとしたら、カスタム 5.10 perl RPM を作成し、システム Perl を置き換えるだけです。それなら私は使います cpan2rpm ソフトウェアに必要な RPM パッケージを作成し、独自の mod_perl RPM をコンパイルします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top