6

mod perl を使用してアプリケーションを開発しています_が、コードを変更するたびにサーバーを再起動するのは非常に面倒です。_ライブサーバーに使用する予定があるため、開発には引き続き mod perl を使用したいと思います。これを行う方法についてのドキュメントには何もありませんでした。

考え?

4

2 に答える 2

9

Apache2::Reload は、あなたが探しているものをいくらか達成すると思います。ただし、アプリを運用環境に置く準備ができたら、この実装をすべて削除することを忘れないでください。

%INC 内のすべてのモジュールを監視する

リクエストの処理の開始時に %INC 内のすべてのモジュールを監視してリロードするには、次の構成を httpd.conf に追加するだけです。

PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload

接続フィルターとプロトコル モジュールを使用する場合、Apache2::Reload は pre_connection ステージで呼び出す必要があります。

PerlPreConnectionHandler Apache2::Reload

モジュールを暗黙的に登録する

Apache2::Reload に登録されたモジュールのみをリロードするには、httpd.conf に以下を追加します。

PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll Off
# ReloadAll defaults to On

次に、次の行を持つモジュール:

use Apache2::Reload;

それらが変更されるとリロードされます。

詳細については、このドキュメント ページを参照してください。お役に立てれば。

于 2009-01-14T07:22:46.760 に答える
2

PerlMonks 経由の Perrin Harkins からのこのソリューションを使用します。

MaxRequestsPerChild を 1 に設定し、変更される可能性のあるモジュールを親ではなく子にロードします (明らかに開発環境のみ)。各リクエストは新しい子サーバーにヒットし、変更される可能性のあるすべてのモジュールを新たにロードします。

実行中のWebサーバーでモジュールの変更を確認するより良い方法」より

于 2010-10-28T15:54:39.997 に答える