目前我正在尝试在我的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显示对于类似问题,人们如何添加更多的模块文件夹。)