mod_perl 2 で作成している Web アプリがあります (これはカスタム ハンドラー モジュールであり、レジストリや perlrun スクリプトではありません)。サーバーの初期化時に、できれば構成ファイルから設定したい構成オプションがいくつかあります。私が抱えている問題は、アプリの構成ファイルのファイル名を渡すのに適した場所が見つからないことです。
最初に「./app.conf」をロードしようとしましたが、現在のディレクトリはモジュールの場所ではないため、予測不能でエラーが発生しやすくなります。または、何らかのパス (相対パスまたは絶対パス) を想定する必要があります。これは柔軟性がなく、ホスト OS ディストリビューションが変更された場合に問題になる可能性があります。パスをハードコーディングしたくありません (ただし、他に良い方法がない場合は、/etc 内の何かが許容される場合があります)。
PerlSetVar も試しましたが、値はリクエスト時まで利用できません。これは実行可能ですが、子 (スレッド) の初期化ごとに少なくとも 1 回はディスクから構成ファイルを読み取る可能性があることを意味します。サーバーの初期化時にロードし、子が作成されたときに生成された環境の一部である不変の静的ハッシュを使用したいと考えています。
config.pl を使用することを検討しましたが、これは、app.conf ファイルの場所を構成するための 1 つのオプションを含む config.pl を使用するか、オプション自体を config.pl に移動してエンドユーザーに Perl を尊重するよう要求することを意味します。オプションを設定するときの構文。将来のユーザーは内部管理者になるので、それは不合理ではありませんが、私が望むよりも複雑です.
それで、私は何が欠けていますか?良い代替案はありますか?