2009-06-30 22 views
2

WebアプリケーションをPerlで書くことができます.Webアプリケーションは、CGIスクリプト、FastCGI/FCGIスクリプト、mod_perl/mod_perl2として動作します(コアのPerlモジュールとlibwww-Perlのモジュールのみを使用し、 Perl CPANモジュールをインストールする必要があります)?スクリプトをCGIからFastCGIまたはmod_perlを使用して変更するために必要な変更を最小限に抑えたい。CGI、FastCGI、mod_perlをサポートするPerl Webアプリケーションを作成するにはどうすればよいですか?

さらなる制約:可能であれば、私はWebアプリケーションを単一のファイルにしたいのですが、現在はモジュールで分割していません。

問題のWebアプリケーションは、gitweb、Git Webインターフェイスです(重要な場合)。

答えて

2

モジュールに機能を追加します。スクリプトがただ1つの機能を実行するようにします。インスタンス化するアプリケーションモジュールを選択し、プラットフォーム固有の処理を行い、共通の機能に委任します。したがって、呼び出すスクリプト、各プラットフォームを実装するための3つまたは4つのモジュール、一般的な機能を実装する1つのモジュールで終わるでしょう。

App/bin/app.pl 

App/lib/App/Common.pm 

App/lib/App/Apache1.pm 
App/lib/App/Apache2.pm 
App/lib/App/CGI.pm 
App/lib/App/FCGI.pm 
2

gitwebはすでにDocumentation(免責事項:私はこれをテストしたことはありません)によるCGI、使用、箱から出して、それらのすべてをサポートする:

CGI.pmは中で非常によく実行また、 には、mod_perlとmod_perl2のサポートと、 FastCGIが組み込まれています。

FastCGIサポートのためにはまだFCGIが必要です。インストールするにはCコンパイラが必要です。

+0

私はmod_perl/mod_perl2のより高度な機能を使用し、実際にはFastCGI(おそらくFastCGIラッパー?)を使用することを考えていました –

+1

... CGIで実行していて、あなたは、CGIのためのmod_perlと基本コードのための高速/エレガント/あらゆるコードを書くように自分自身を設定して、あなたの仕事を倍増させます... – ijw

2

Sinanが指摘するように、コードをモジュールに分割します。彼は魔法の言葉「Model-View-Controller」(MVC)を使用しませんでした。あなたは本当にMVCを使い、複数のコントローラをサポートする方法を尋ねています。モデルとビューは同じで、異なるコントローラがそれらを使用してアプリケーションを駆動します。

5

誰も明白な答えをまだ与えられていないことに私は驚いています。 Catalystを使用してください。 Catalystでは、バニラCGI、FastCGI、mod_perlなど、あらゆるWeb環境に展開するのは簡単です。

関連する問題