1

更新:2013 年 7 月 12 日

该脚本通过命令行工作。

“-----extra line”是在编辑器中显示一个额外的回车键。


XAMPP:1.8.2

服务器:阿帕奇 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

4 回答 4

1

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

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

于 2014-04-04T08:28:03.110 回答
1

也许您的编辑器将行尾字符更改为 windows one。

CGI 输出需要以 HTTP.. 开头,然后是两个 \n 标题,然后是正确 HTML 代码之间的正文(为什么我的 Perl CGI 程序不能在 Windows 上运行?

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

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

于 2013-07-12T15:44:05.900 回答
0

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

于 2014-04-20T18:11:50.980 回答
0

可能这是 SELinux 块。尝试这个

setsebool -P httpd_enable_cgi 1 
chcon -R -t httpd_sys_script_exec_t cgi-bin/your_script.cgi
于 2015-01-05T14:44:36.703 回答