Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl脚本中的脚本头过早结束_Perl_Apache_Cgi_Handler - Fatal编程技术网

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

我在执行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
  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!