hello list,
I am trying to migrate a perl script that acts as a webserver from solaris to
linux (red hat). The script is run using apache (httpd) and mod_perl.
It nearly does what it is supposed to, exept for the error pages.
When an error occurs and the script can not fulfill the request, it sends a
small error page to the user, containing two p elements, together with status
500.
This used to work OK, but on the new machine, apache decides to add extra text
to the page. The receiving application sees a page that does not conform to the
specification and thinks it is not an error page. This results in various
problems.
I have not the slightest idea in what direction I have to search. Is it an
apache configuration issue or maybe a perl library issue? I really don't know.
Can you guys give me some clue?
This is the perl code that makes the error page:
print $cgi->header ( -status => '500 NOT OK',
-type => 'text/html');
print $cgi->start_html ('agent');
print $cgi->p ('ERROR');
print $cgi->p ('error during database lookup');
print $cgi->end_html ();
And this is what I receive in my browser:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>agent</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body><p>ERROR</p>
<p>error during database lookup</p>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>200 OK</title>
</head><body>
<h1>OK</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
[email protected] and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body>
</html>
thanks in advance, Ruud