我正在运行一个CGI脚本(曾经工作但突然停止工作)并收到以下错误消息:
Can't locate conn.pm in @INC (@INC contains: /www/my/lib, etc.)
但是,文件conn.pm
存储在目录/www/my/lib
中。我的CGI脚本在顶部有这些行:
#!/usr/bin/perl -w
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
use lib "/www/my/lib";
use conn;
// rest of code here ...
任何人都可以权衡我为什么会收到此错误消息?因为@INC变量应该有/www/my/lib
,conn.pm
位于该目录中。
更新:在回答下面的评论时,conn.pm
拥有权限rwxr-xr-x
,其路径中的每个目录都有权限drwxr-xr-x
。
更新2:在回答其他评论时,这是@ikegami's
shell脚本的输出。
$ ./diagnostic.sh
Content-Type: text/plain
USER=<user>
PWD=/home/<user>
===
/www/my/lib
/gedi/dev/lib/perl/BioPerl-1.6.1
/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/5.8.8
.
===
更新3:好的,当我使用Perl自行运行我的CGI脚本时,每@ikegami's
条评论都可以。该脚本称为“login.cgi”,当我运行perl login.cgi
时,我没有错误。
问题是当我将网络浏览器指向我的索引页面时。索引页面有一个刷新,它执行此操作:
<meta HTTP-EQUIV="REFRESH" content="0; url=/www/my/cgi/login/login.cgi">
是否与重定向到login.cgi
的索引页有任何关系?