mod perl を使用してアプリケーションを開発しています_
が、コードを変更するたびにサーバーを再起動するのは非常に面倒です。_
ライブサーバーに使用する予定があるため、開発には引き続き mod perl を使用したいと思います。これを行う方法についてのドキュメントには何もありませんでした。
考え?
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;
それらが変更されるとリロードされます。
詳細については、このドキュメント ページを参照してください。お役に立てれば。
PerlMonks 経由の Perrin Harkins からのこのソリューションを使用します。
MaxRequestsPerChild を 1 に設定し、変更される可能性のあるモジュールを親ではなく子にロードします (明らかに開発環境のみ)。各リクエストは新しい子サーバーにヒットし、変更される可能性のあるすべてのモジュールを新たにロードします。