你有每個腳本一個單獨的Location
或Directory
,還是他們都住在同一個地方?如果是前者,我會用PerlSetEnv
Alias /apps/thisone/ /srv/http/site/apps/thisone/
<Location /apps/thisone/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
PerlSetEnv MYLIB /srv/http/site/apps/thisone/lib
Options +ExecCGI
Order allow,deny
Allow from all
</Location>
如果是後者:
Alias /apps/ /srv/http/site/apps/
<Location /apps/thisone/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
PerlSetEnv THISONE_LIB /srv/http/site/apps/thisone/lib
PerlSetEnv THATONE_LIB /srv/http/site/apps/thisone/lib
Options +ExecCGI
Order allow,deny
Allow from all
</Location>
我不確定`__FILE__`是否仍然被`mod_perl`解開。如果安全,那麼就不需要'BEGIN'和'unshift'(此外,BEGIN之後應該沒有冒號。 – 2009-07-22 14:44:45
這個作品: 使用File :: Basename; 使用lib dirname(__FILE__); Your建議不起作用,但它讓我走上了正確的軌道 謝謝。 – 2009-07-22 14:45:03
大衛的建議沒有工作,因爲`BEGIN`後冒號。 – 2009-07-22 14:46:34