我有一个perl页面,我试图在将其移动到我的生产服务器之前首先在本地主机环境中工作。但是,如果我使用简单的hello.pl
页面,它在浏览器中的效果非常好:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello this is just a kindness.\n";
然而,当我尝试加载实际脚本'step1.pl'并打开它时,我只得到500错误。所以我把error_log发送到了为什么,我找到了这个。
Mon Aug 11 08:19:07 2014] [error] Can't locate CGI.pm in @INC (@INC contains:
/usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /etc/httpd) at
/var/www/vhosts/ibstrategies.com/httpdocs/step1.pl line 3.\nBEGIN failed--compilation
aborted at /var/www/vhosts/ibstrategies.com/httpdocs/step1.pl line 3.\n
但我知道CGI.pm已安装。
[root@chelsea /]# perl -e 'use CGI; print $CGI::VERSION."\n";' 4.03
有什么想法吗?
答案 0 :(得分:2)
从命令行运行perl
时使用的Perl二进制文件在哪里?输入which perl
查找。
step1.pl顶部是否有一条shebang线?我打赌这指向不同版本的Perl。
但是CGI.pm已经包含在标准的Perl发行版中超过15年了。如果你有一个不包含它的Perl版本,那么你的Perl可能是荒谬的老旧或奇怪的残缺。在其中任何一种情况下,我强烈建议您迁移到安装了更好版本Perl的服务器。