标题之前的脚本输出结束:hello.pl

时间:2013-07-12 06:22:26

标签: perl xampp

更新:2013年12月7日

脚本通过命令行工作。

“------额外行”是在编辑器中显示额外的返回键击。


XAMPP:1.8.2

服务器:Apache 2.4

问题:

对于一个简单的hello world perl脚本,我一直收到错误“标题:hello.pl之前的脚本输出结束”。我正在尝试通过Web服务器“xampp”执行脚本。

好奇注意:

我可以使用最初工作的另一个Perl脚本。但是,当我进行一个简单的更改,如空格,返回或注释“#”时,脚本将不再起作用。但是,如果我删除更改并保存它,脚本将再次起作用。

检查清单

确认perl的正确路径 输出头(参见下面的perl代码) 脚本末尾的额外行(我听说这可以解决问题) 在httpd.config中确认了正确的权限 通过ftp以ASCII格式传输文件

Perl脚本:

#!"C:\xampp\perl\bin\perl.exe"

print "Content-Type: text/html\n\n";

print "hello world";

------extra line

httpd.config

<Directory "C:/xampp/htdocs">;
 Options Indexes FollowSymLinks Includes ExecCGI
 AllowOverride All
 Require all granted
</Directory>;

4 个答案:

答案 0 :(得分:1)

也许你的编辑器将行结束符改为windows 1。

CGI输出需要用HTTP ..,两个\ n然后标题启动,然后是正确HTML代码之间的正文(Why doesn't my Perl CGI program work on Windows?

检查编辑器中的实际字符,显示行结尾(如记事本++)。

据我所知,在Windows中忽略了shebang(#!)行。

答案 1 :(得分:1)

可能的原因: http://perl.baczynski.com/wtf/solved-mystery-perl-on-xampp-wont-run-modified-scripts

tl; dr:关闭COMODO防病毒软件,或者它的沙箱功能。

答案 2 :(得分:0)

可能是已知的PHP错误(https://bugs.php.net/bug.php?id=66474)。尝试不同版本的PHP?

答案 3 :(得分:-1)

可能这是SELinux块。 试试这个

setsebool -P httpd_enable_cgi 1 
chcon -R -t httpd_sys_script_exec_t cgi-bin/your_script.cgi