2

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

さらなる制約:可能であれば、現在のようにWebアプリケーションをモジュールに分割するのではなく、単一のファイルにまとめたいと思います。

問題のWebアプリは、重要な場合はgitweb、GitWebインターフェイスです。

4

5 に答える 5

5

まだ誰も明白な答えを与えられていないことに私は驚いています。Catalystを使用します。Catalystを使用すると、バニラCGI、FastCGI、mod_perlなどを含む任意のWeb環境にデプロイするのは簡単です。

于 2009-07-01T14:34:32.083 に答える
2

機能をモジュールに入れます。スクリプトに1つの機能だけを実行させます。インスタンス化してプラットフォーム固有のものを処理するアプリケーションモジュールを選択してから、共通の機能に委任します。したがって、呼び出すスクリプトが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
于 2009-06-30T15:07:21.213 に答える
2

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

于 2009-07-01T08:08:09.710 に答える
2

gitwebはすでにCGIを使用しています。これは、ドキュメント(免責事項:これをテストしたことはありません)によると、箱から出してすぐにすべてをサポートします。

CGI.pmは、バニラCGI.pm環境で非常に優れたパフォーマンスを発揮し、FastCGIだけでなくmod_perlとmod_perl2のサポートも組み込まれています。

FastCGIサポートにはFCGIが必要であり、インストールするにはCコンパイラが必要であるため、最後の部分は正確には当てはまりません。

于 2009-06-30T16:40:26.183 に答える
0

さらに別の可能な解決策は、HTTP :: Engine
を使用することです (Perlプログラミング/ HTTP :: Engineウィキブックスも参照)。

于 2009-07-07T08:28:55.070 に答える