目前我正在嘗試在我的Perl程序中使用一組自定義perl模塊,test.pm作爲其中一個模塊,並帶有WebUI。我在安裝了Apache2的Windows 7機器上運行它。當我使用perl test.pl在cmd提示符下運行程序時,程序運行良好。然而,在Apache上運行它給了我這個錯誤。Apache2服務器上的自定義Perl模塊
[Wed Jun 13 16:23:32 2012] [error] [client 127.0.0.1] Can't locate test.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:/www/hello2.pl line 7.\r, referer: http://localhost/ui_test.htm
[Wed Jun 13 16:23:32 2012] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at C:/www/hello2.pl line 7.\r, referer: http://localhost/ui_test.htm
我用:
foreach $key (sort keys(%ENV)) {
print "$key = $ENV{$key}<p> \n";
}
和路徑變量下,我看到的,所有的模塊所在的文件夾。有什麼地方我應該用來添加到Perl路徑?
另外加入使用庫「C:\ testpm \」;我的代碼只改變@INC到
(@INC contains: C:\testpm\ C:/Perl/lib C:/Perl/site/lib .)
是否有你需要做的路徑添加到運行Apache服務器上的自定義Perl模塊額外的東西?
解決方案根據答案: 我發現這個工作效果最好。在我的httpd-perl.conf文件,我添加了這些行:
<IfModule env_module>
SetEnv PERL5LIB "C:\testpm;C:\testpm1;"
</IfModule>
(伸出與C:\ testpm1顯示對於類似問題,人們如何添加更多的模塊文件夾。)