我有一個web應用程序我正在寫mod_perl 2.(這是一個自定義處理程序模塊,而不是註冊表或perlrun腳本)。我想在服務器上設置幾個配置選項初始化,最好來自配置文件。我遇到的問題是,我沒有找到一個好的地方爲我的應用程序的配置文件傳遞一個文件名。mod_perl 2環境中的WebApp配置
我第一次嘗試加載「./app.conf」,但當前目錄不是模塊的位置,所以它是不可預測和容易出錯的。或者,我必須假設一些相對或絕對的路徑。這是不靈活的,如果主機操作系統分佈發生更改,則可能會出現問題。我不想硬編碼路徑(儘管如果沒有更好的方法,/ etc中的某些內容可能是可以接受的)。
我也嘗試過PerlSetVar,但該值在請求時間之前不可用。雖然這是可行的,但這意味着我可能至少每個子進程(線程)初始化一次從磁盤讀配置文件。我寧願在服務器初始化時加載,並且在創建子進程時擁有不可變的靜態哈希,這是生成環境的一部分。
我考慮過使用config.pl,但這意味着我要麼有一個config.pl,要麼有一個選項來配置在哪裏找到app.conf文件,要麼將選項本身移動到config.pl中,用戶在設置選項時遵守Perl語法。未來的用戶將是內部管理員,所以這不是不合理的,但它比我想要的更復雜。
那麼我錯過了什麼?任何好的選擇?