Page 1 of 1

Xampp Apache doesn't want to run CGI Perl scripts

PostPosted: 17. November 2006 22:26
by rlm1947
I have loaded xampp on my Windows XP box, and I want to us it for development work so thatI don't have to ftp my files to the Unix server to see if they work. I guess a lot of folks do this.

I see some strange symptoms:
- when I click on the link that calls the cgi script (came from some shared scripts site on the internet) it doesn't run the script (which runs quite nicely on the Unix server). It instead gives me an error message, but not a normal error message, but rather the html code for the error message. BTW: I have the shebang line as correct as I can make it.

this is what I see in my firefox window:
- - - - - - - - - - - -
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Server error!</title>
<link rev="made" href="mailto:admin@localhost" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/
body { color: #000000; background-color: #FFFFFF; }
a:link { color: #0000CC; }
p, address {margin-left: 3em;}
span {font-size: smaller;}
/*]]>*/--></style>
</head>

<body>
<h1>Server error!</h1>
<p>




The server encountered an internal error and was
unable to complete your request.

</p>
<p>


Error message:
<br />Premature end of script headers: index.cgi



</p>
<p>
If you think this is a server error, please contact
the <a href="mailto:admin@localhost">webmaster</a>.

</p>

<h2>Error 500</h2>
<address>
<a href="/">localhost</a><br />

<span>11/17/06 11:03:36<br />
Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_autoindex_color PHP/5.1.6</span>
</address>
</body>
</html>
- - - - - - - - -

This tells me that there is some configuration setting or other that is incorrect. The comments in httpd.conf are less than helpful. Is there anywhere where there is a document with cookbook instructions on what Windows XP needs to make Apache run cgi (perl) scripts?

Thanx,

rlm1947

PostPosted: 17. November 2006 23:04
by Wiedmann
error.log?

PostPosted: 17. November 2006 23:17
by Izzy
Whenever you get a server error check the server's error log. It will more than likely tell you what is giving it a pain. Check the date and time you get the error and look in the error log for the corresponding date and time entries.
xampp\apache\logs\error.log
Paste it here if you have problems understanding it.

The shebang line must be absolutely correct and is usually the path to the perl.exe file and must be the first line with no spaces above it.
In my case it looks like this:
Code: Select all
#!"\xampp\perl\bin\perl.exe"

use CGI;

$form=new CGI;

$f_name=CGI::escapeHTML($form->param("f_name"));
$f_email=CGI::escapeHTML($form->param("f_email"));
$f_text=CGI::escapeHTML($form->param("f_text"));
etc.etc.


There are cgi test scripts in the http://localhost XAMPP welcome pages located in the left menu. Try the Guest Book.
The file is located here:
xampp\htdocs\xampp\guestbook_en.cgi (or what ever your language is set to)
Open the guestbook_en.cgi in your text editor and it will also give you the correct shebang line on your system.

If you did not install to the default path did you run the setup_xampp.bat file as per the xampp\readme-en.txt file?