perl脚本中的脚本头过早结束
我在执行perl脚本时遇到问题。我使用别名作为服务器的目录,如下所示:perl脚本中的脚本头过早结束,perl,apache,cgi,handler,Perl,Apache,Cgi,Handler,我在执行perl脚本时遇到问题。我使用别名作为服务器的目录,如下所示: Alias /epbin3/ /opt/v-hosts/user/epbin/ <Location /epbin3> AddHandler cgi-script .cgi .pl # SetHandler cgi-script # SetHandler perl-script # PerlResponseHandler ModPerl::PerlRun Options All All
Alias /epbin3/ /opt/v-hosts/user/epbin/
<Location /epbin3>
AddHandler cgi-script .cgi .pl
# SetHandler cgi-script
# SetHandler perl-script
# PerlResponseHandler ModPerl::PerlRun
Options All
AllowOverride None
</Location>
请任何人告诉我是什么问题,以及我如何解决这个问题?如果我猜对了,您没有允许文件访问文件系统的目录指令:
<Directory /opt/v-hosts/user/epbin/>
AddHandler cgi-script .cgi .pl
Options All
AllowOverride None
</Directory>
格式正确的HTTP应答在头和正文之间包含一个空行。很可能SalkHooToSt4.PL缺少这样的空行,因为它根本不输出标题或者空白行丢失,也就是说,你可能有这个:
Content-type: text/plain
Hello, world!
当您需要时:
Content-type: text/plain
Hello, world!
您可以显示调用脚本的代码吗?我收到了相同的错误消息[Sun Jun 09 16:43:22 2013][error][client ipClient]2没有这样的文件或目录:“/opt/v-hosts/user/epbin/map/landmarks.pl”的exec失败[Sun Jun 09 16:43:22 2013][error][client ipClient]脚本头过早结束:landmarks.pl/opt/v-hosts/epilgrim/epbin/searchHotelsTh4.pl是否在该位置退出?还要检查文件/opt/v-hosts/user/epbin/map/landmarks.pl。请仔细检查大小写敏感度。当我删除AddHandler cgi script.cgi.pl时,文件searchHotelsTh4.pl在浏览器中可以作为文本读取,但我在激活handlerIMHO时出现此错误。有趣的是,在添加我的目录指令后,错误已更改为另一个文件,这似乎是一个perl问题。如果您从命令行执行perl脚本,它会工作吗?当我尝试使用命令行执行perl文件时,结果会显示在命令屏幕上,没有问题。我制作的小测试文件包含以下内容/usr/bin/perl使用CGI;严格使用;印刷机;它是print Muneer,这意味着perl执行了文件,我认为这不太可能是问题所在。在Perl CGI语言中,脚本头过早结束,通常只是意味着您的脚本没有达到将输出发送到浏览器的程度-您必须查看后续的错误消息才能对其进行调试。非常感谢,但是我如何使用putty在perl中查找后续的错误消息。我正在查找错误日志,我得到的消息只是脚本头的过早结束。如果有其他错误消息,请参阅查找错误日志?问题是否非常复杂?到目前为止,我还没有找到任何解决方案?这是使用别名epbin2函数ajaxSearchHotelsTestdiv调用脚本的函数{var targetDiv=div;var url='/epbin2/searchhotelssh4.pl?';errorMsg='很抱歉搜索酒店时出错。\n请刷新页面重试。';errorHTML='未找到酒店。;getAjaxDataurl,targetDiv;}
Content-type: text/plain
Hello, world!