记一次学习perl写CGI遇到的ERROR

原创 2013年12月04日 15:53:17

初学perl写CGI,遇到N多问题,编写的脚本如下

[root@test02 learn_test]# vi hello.cgi 
#!/usr/bin/perl
use cgi;
use strict;
use warnings;
print header;
print "<B> Hello,World!</B>";

perl -c  hello.cgi 

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 .) at /usr/local/apache/htdocs/learn_test/hello.cgi line 2.

apache 日志下输出:

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 .) at /usr/local/apache/htdocs/learn_test/hello.cgi line 2.
[Tue Dec 03 12:57:33 2013] [error] [client 192.168.1.12] BEGIN failed--compilation aborted at /usr/local/apache/htdocs/learn_test/hello.cgi line 2.
[Tue Dec 03 12:57:33 2013] [error] [client 192.168.1.12] Premature end of script headers: hello.cgi

解决办法:

从两个log message的输出信息来看是缺少了cgi.pm模块,可以手工或者自动安装cgi模块

自动安装:perl -e shell -MCPAN 之后install cgi

手工安装:http://www.cpan.org/modules/01modules.index.html 查找CGI的模块包CGI.pm-3.64.tar.gz 

解压:tar zxvf CGI.pm-3.64.tar.gz 

安装:cd CGI.pm-3.64

 perl Makefile.PL 

make

make install

这样就安装好了CGI的模块,但是使用perl -c检查时发现问题依旧

在/usr/local/perl5下,发现模块名为:FCGI.PM,并不是想象中的CGI.PM。查看perl的官方CGI模块介绍

http://perldoc.perl.org/CGI/Fast.html

使用模块为: use CGI::Fast qw(:standard);

于是更改脚本语句:

#!/usr/bin/perl 
use CGI::Fast qw(:standard);
use strict;
use warnings;
print "Content-type:text/html\n\n";
#print header
print "<B> Hello,World!</B>";

再使用perl -c hello.cgi ,语法正确

再通过web访问正常!

问题解决!



Perl & Python编写CGI

最近偶然玩了一下CGI,收集点资料写篇在这里留档。 现在想做HTTP Cache回归测试了,为了模拟不同的响应头及数据大小,就需要一个CGI按需要传回指定的响应头和内容,这是从老外的测试页面学习到的经...
  • HorkyChen
  • HorkyChen
  • 2014年04月24日 08:29
  • 3853

perl cgi编程简介

CGI是什么 ? 通用网关接口CGI,是一组标准定义之间交换信息的Web服务器和自定义脚本。 维护NCSA和NCSA CGI规范定义CGI如下: 通用网关接口CGI,是一个标准的外部...
  • stonesharp
  • stonesharp
  • 2014年01月12日 20:28
  • 2233

Perl CGI 调试的几种方法

今天有位女同学过来问怎么调她写的CGI脚本,因为种种原因, 开发机上启不了httpd服务器,跟我说里面的perl代码她都已经测试过了,没问题,但是build没出来,等不及了,问我怎么手工调试。本来觉得...
  • napolunyishi
  • napolunyishi
  • 2015年03月12日 17:59
  • 1452

用Perl制作页面计数器

  网友大都喜欢在自己的主页上做一个计数器来显示自己主页被访问的次数。以前我们只能申请由第三方提供的计数器或用由系统管理员提供的计数器,受到很大限制。现在许多免费空间都提供了CGI权限,因此我们也可以...
  • yhb72
  • yhb72
  • 2005年11月27日 13:26
  • 696

PERL CGI简介及指令示范

PERL CGI简介及指令示范 本文出自:http://www.01-world.com 作者: 蔡奇玉、连振汉、张志强 (2001-08-22 12:00:00) 摘自蔡奇玉、连振汉、张志强著《CG...
  • bjbs_270
  • bjbs_270
  • 2004年12月13日 23:04
  • 3582

Perl CGI 一个简单的用户登录验证应用

工作上需要给其它部门的同事提供一些数据,或者很简单的web操作(类似cms)功能的页面。刚开始的时候,直接挂到apache下一个页面,通知对方。但是这样没用用户,密码的验证就导致任何知道这个url的用...
  • Aylazhang
  • Aylazhang
  • 2009年05月12日 10:12
  • 9276

Perl CGI 学习之环境搭建-Windows7 64

下载: http://download.cnet.com/Apache-Tomcat-64-bit/3000-10248_4-75812427.html
  • carolzhang8406
  • carolzhang8406
  • 2015年03月09日 14:57
  • 1486

apache中perl cgi程序显示源代码的问题解决方法

 apache中perl cgi程序显示源代码的问题解决方法1.查看目录的属性设置中是否添加了,cgi程序的执行权限        Options ExecCGI    2.查看apache是否已经加...
  • lhfeng
  • lhfeng
  • 2007年12月24日 11:21
  • 2496

Apache环境下 如何运行Perl写的cgi

 运行环境: Windows XP, WampServer, Active Perl 5.6 安装完毕, 用记事本打开httpd.conf文件,1.搜索cgi-bin,找到ScriptAlias /c...
  • momolulu
  • momolulu
  • 2007年08月06日 16:32
  • 2314

Linux下 Apache服务器配置CGI(perl)

1、 环境: 操作系统:Linux 3.18.0-kali3-amd64 #1 SMP Debian 3.18.6-1~kali2 x86_64 GNU/Linux Apache:Apache/2.2...
  • u012842205
  • u012842205
  • 2015年09月04日 21:53
  • 1010
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:记一次学习perl写CGI遇到的ERROR
举报原因:
原因补充:

(最多只允许输入30个字)