You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Lee Anne Lester <ll...@jaeb.org> on 2001/06/28 21:22:24 UTC
CGI::Carp(fatalsToBrowser) not working with Apache::PerlRun
We are in the process of moving from strictly CGI to a mod_perl environment.
Since I know
we have many CGI programs that will not run correctly under mod_perl, I want
to run them
using the Apache::PerlRun handler instead of the Apache::Registry. We just
have too many
programs to recode.
I included directives in the httpd.conf file to have all .cgi programs
handled by Apache::PerlRun
and all .pl files to be handled by Apache::Registry. The problem I am
having is using
CGI::Carp qw(fatalsToBrowser). When scripts are run with Apache::Registry,
any fatal errors are
output to the browser. When scripts are run using the Apache::PerlRun
handler, the error is going
to the log and not the browser. I just get Internal Server Error displayed
in the browser.
Below are the Apache configuration directives and a sample program. When
the program has a .pl
extension, I get the error output in the browser. When the same code is
run with a .cgi extension,
the error only goes to the log. Can anyone tell me what I am doing wrong?
Thanks in advance.
Versions: Apache 1.3.20 mod_perl 1.25 CGI.pm 2.753 CGI::Carp 1.20
<Files ~ "\.cgi$">
SetHandler perl-script
PerlHandler Apache::PerlRun
Options ExecCGI
allow from all
PerlSendHeader ON
</Files>
<Files ~ "\.pl$">
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
allow from all
PerlSendHeader ON
</Files>
############################################################
SAMPLE PROGRAM
#!/usr/local/bin/perl -Tw
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(-debug :standard);
use strict;
use diagnostics;
open(FILE, "</tmp/changes") || die("can't open file");
close(FILE) || die("can't close file");
print header(),
start_html(),
"testing....",
end_html;
Lee Anne Lester
Email: llester@jaeb.org