产生perl CGI错误"Premature end of script headers"的可能原因

产生perl CGI错误"Premature end of script headers"的可能原因
今天我在为公司配置website 时遇到了这个错误,这个site 的CGI是用perl写的,折腾了半天,并且查阅了相关资料终于搞定了,所以在此罗列以下,希望对大家有所帮助。
在讲错误产生的原因之前,有个基本的要点是:要让CGI程序能正常运作,必须配置Apache以允许CGI的执行。下面列出了产生这个错误可能的原因:
原因1)perl 解释器路径不对
在CGI程序的第一行中指明解释器(通常是perl),形如:

#!/usr/bin/perl

必须保证它的确指向解释器。
原因2)文件的权限不对
记住,服务器不是以你的用户身份运行的,就是说,在服务器启动后,拥有的是一个非特权用户的权限-通常是``nobody''或者``www'' -而需要更大的权限以允许文件的执行。通常,给予``nobody''足够的权限以执行文件的方法是,对文件赋予everyone execute权限:

chmod a+x first.pl

另外,如果需要对其他文件进行读取或写入,也必须对这些文件赋予正确的权限。
原因3)CGI中有语法错误

在运行你的CGI之前,你可以用一个简单的perl CGI文件test.pl测试一下,文件内容如下:
#!/usr/local/bin/perl -w

print "Content-type: text/html/n/n";
print "Hello, World.";
别忘了修改该文件的权限chmod a+x test.pl.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值