2009-03-20 9 views
5

mod_perlをサポートする既存のPerlアプリケーションがあります。しかし、新しいホスト(Dreamhost)はmod_perlをサポートせず、FastCGIのみをサポートします。ポートを必要とする。mod_perlのPerlコードをFastCGIに移植するにはどうしたらいいですか?

既存のコードではApache固有のものは使用されておらず、受け入れられる方法で書かれた普通のPerlコードです。mod_perl

FastCGIサポートを追加すると、既存のコードを特定の種類のループ内にラッピングすることが含まれているようです。以下は、最も一般的に与えられたスケルトンコードです:

:CGI ::高速

use CGI::Fast 
while (my $cgi = CGI::Fast->new()) 
{ 
    #Run existing code. 
} 

サブ質問を使用してFCGI

use FCGI; 
while (FCGI::accept >= 0) 
{ 
    #Run existing code. 
} 

B.を使用して

A.

  1. 方法はありますか?およびB FastCGIサポートを追加する同等の方法はありますか?
  2. bが異なる場合は、1つをもう1つ使用することの長所と短所は何ですか?
  3. mod_perlからFastCGIへ移植する際に知っておくべきベストプラクティスまたは問題点はありますか?

ありがとうございます。

答えて

3

一般に、FastCGIアプリケーションはCGIと非常によく似ています。主な違いは、プロセスを永続化できるという利点を利用できることです。たとえば、実行中のプロセスでデータベースデータをキャッシュするなど、アプリケーションでスピードの利点を得るために、これを活用することができます。基本的に、アプリケーションをWebサーバーによって提供されるFastCGIゲートウェイの背後で実行される独自のアプリケーションサーバーに変更しています。

アイデアは、アプリケーションの処理方法をFastCGIゲートウェイに適用する方法を理解することです。 mod-perl固有の機能を使用していますか?もしそうなら、それから離れる。そうでない場合は、FastCGI経由の会話に取り掛かります。 Perlで利用できるFastCGIインターフェイスがあるという点で利点があります。私はあなたが何らかのバージョン管理システムを使用していると仮定します。したがって、FastCGIに移植するためのブランチを作成してください。次に、POSTとPUTを標準入力から読み、アプリケーションの応答を標準出力に書き込むように考え始めます。

また、アプリケーションのFastCGIインターフェイスを実装するライブラリを読み込むだけでよい場合もあります。それらのいくつかはfastcgi.comにあります。それはあなたのアプリケーションが現在何をしているのかとは違うやり方を理解するのに役立ちます。

幸運を祈る!

2

CPANのドキュメントをすばやく見ると、CGI :: FastはFCGIのラッパーです。 CGIから ::高速ページ:

CGIを使用するためには::ファストあなたはFCGIモジュールを

私のテイクが、それは基本的にあなたがCGIの標準機能を使用できることです必要があります.pmをFastCGI(ヘッダ作成とパラメータアクセスがCGI.pmの主要な側面であると思われます)のスピードの利点と一緒に使用します。

私はこれらのどちらも使用していませんが、これはドキュメンテーションから私にとって似ているものなので、間違っている可能性があります。

関連する問題