End of script output before headers: hello.pl

筅森魡賤 提交于 2020-03-03 09:57:28

问题


Update: 07/12/13

The script works through command line.

"------extra line" is to show an extra return key stroke in editor.


XAMPP: 1.8.2

Server: Apache 2.4

Issue:

I keep receiving the error "End of script output before headers: hello.pl" for a simple hello world perl script. I'm trying to execute the script via a web server "xampp".

Curious Note:

I can use another Perl script which will initially work. However when I make a simple change such as a space, return or comment "#", the script will no longer function. However if I remove the change and save it the script will work again.

Check List

Confirm correct path to perl Output header (see perl code below) Extra line at end of script (I heard this could resolve issue) Confirmed correct privileges in httpd.config Transferred file via ftp in ASCII

Perl Script:

#!"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>;


回答1:


Maybe your editor changes the line ending characters to windows one.

CGI output needs to be started with HTTP.., two \n then header, then the body between the right HTML codes (Why doesn't my Perl CGI program work on Windows?)

Check the actual chars in a editor that shows you the line endings (like notepad++).

To my best knowledge, the shebang (#!) line is ignored in windows.




回答2:


The probable cause: http://perl.baczynski.com/wtf/solved-mystery-perl-on-xampp-wont-run-modified-scripts

tl;dr: turn off your COMODO antivirus, or it's sandbox feature.




回答3:


Might be a known PHP bug (https://bugs.php.net/bug.php?id=66474). Try different versions of PHP?




回答4:


Probably this is SELinux blocks. try this

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


来源:https://stackoverflow.com/questions/17608627/end-of-script-output-before-headers-hello-pl

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!