michael watson (IAH-C) wrote:

[Wed Apr 18 09:56:55 2007] [notice] Apache/2.2.4 (Unix) mod_perl/2.0.3
Perl/v5.8.0 configured -- resuming normal operations
[Wed Apr 18 09:56:57 2007] [error] [client 149.155.40.20] malformed
header from script. Bad header=<head>: mapview
[Wed Apr 18 09:56:57 2007] [warn] /perl/Gallus_gallus/mapview did not
send an HTTP header
[Wed Apr 18 09:57:45 2007] [error] [client 149.155.42.148] malformed
header from script. Bad header=<head>: mapview
[Wed Apr 18 09:57:45 2007] [warn] /perl/Gallus_gallus/mapview did not
send an HTTP header

So this is Ensembl were dealing with, correct?


I must confess, I don't really know what the Apache::Registry and
ModPerl::Registry modules actually do, but the code in question is
handled by ModPerl::Registry.  From httpd.conf (mostly a perl script!):


That's okay. I've never actually used either of them. In the CGI world, when a perl script is called it's read, parsed, compiled, and executed for each request. Then the script terminates. ModPerl::Registry reads, parses, and compiles the perl script once, and just keeps it in memory for any subsequent requests. The caveat is that sometimes global variables don't get reset to their original states because, well, the script doesn't ever exit.

$Location{"/perl"}={
  SetHandler      =>  'perl-script',
  PerlHandler     =>  'ModPerl::Registry',
#  Options         =>  '+ExecCGI',
  allow           =>  'from all',
#  PerlSendHeader  =>  'On',
  PerlOptions  =>  '+ParseHeaders',
};

This all seems right. It should be examining the output of contigview and mapview to determine if there's a content type header, and if not, it will send text/html.

I suspect that /perl may not actually be running in mod_perl.

I would add a file to /perl called env.

#!/usr/bin/perl

print "Content-type: text/plain\n\n";
for (keys %ENV) {
        print "$_ => $ENV{$_}\n";
}

That should print out a line like MOD_PERL => 'mod_perl/2.0.3' if it's working correctly. If not, it's a configuration problem. Maybe the /perl location config isn't in the virtual host you're using?

Rob

Reply via email to