我正在構建一個mod_perl網站,我需要設置一個將在Perl代碼中使用的環境變量。爲什麼Apache PerlModule指令不設置自定義環境變量?
直到現在我用的是PerlSetEnv
指令設置該變量:
PerlSetEnv MYVAR myvalue
<LocationMatch /perlpath/>
SetHandler modperl
PerlResponseHandler myhandler
Header set Cache-control "no-cache"
</LocationMatch>
這工作得很好,但我想我的預加載mod_perl處理器,因爲第一個電話是很慢的。所以我改變了我的Apache虛擬主機文件:
PerlSetEnv MYVAR myvalue
PerlModule myhandler <- add this line
<LocationMatch /perlpath/>
SetHandler modperl
PerlResponseHandler myhandler
Header set Cache-control "no-cache"
</LocationMatch>
但如果我這樣做,預壓myhandler
的時候,我的代碼失敗,我自定義的環境變量MYVAR
未設置。
那麼是否可以設置一個環境變量,將由PerlModule
指令導出?
我找到了解決我的問題的方法:將我的變量作爲我的處理程序的模塊參數傳遞並通過自定義導入函數獲取。這就是說,我仍然對任何解決方案感興趣,以便在預加載時設置ENV變量。 –