I'm running a Gentoo Linux server using Apache 2.0.55-r1 with Perl
5.8.8, and just recently installed mod_perl 2.0.1-r2.  However,
mod_perl just doesnt seem to work.  I get no errors when apache starts
up, and theres nothing in apache's error log except some unrelated
404s.  It [mod_perl] just...isnt doing anything.

My (only) virtual host and mod_perl are configured as follows:

# default virtual host
NameVirtualHost *:80
<IfDefine DEFAULT_VHOST>
   <VirtualHost *:80>

       DocumentRoot "/home/test/public_html"

       <Directory "/home/test/public_html">
           Options Indexes FollowSymLinks ExecCGI
           AllowOverride None
           DirectoryIndex index.htm index.html index.pl index.cgi index.php
           AddHandler cgi-script .cgi
           Order allow,deny
           Allow from all
       </Directory>

       <IfModule peruser.c>
           ServerEnvironment apache apache
           MinSpareProcessors 4
           MaxProcessors 20
       </IfModule>

   </VirtualHost>
</IfDefine>

# mod_perl configuration
<IfDefine PERL>
   <IfModule !mod_perl.c>
       LoadModule perl_module    modules/mod_perl.so
   </IfModule>
</IfDefine>

<IfModule mod_perl.c>

   <IfModule mod_access.c>
       <Location /perl-status>
           SetHandler perl-script
           PerlResponseHandler Apache2::Status
           Order deny,allow
           Deny from all
           Allow from 127.0.0.1
       </Location>
   </IfModule>

   PerlModule ModPerl::Registry
   <Directory /home/test/public_html/perl>
       SetHandler perl-script
       PerlResponseHandler ModPerl::Registry
       Options -Indexes ExecCGI
       PerlSendHeader On
   </Directory>

   PerlModule Onomatopoeia
   <Files *.phtml>
     SetHandler perl-script
     PerlHandler Onomatopoeia
     PerlSendHeader On
   </Files>
</IfModule>

Now, apache serves html and text documents, and even .cgi scripts
(which run through the normal mod_cgi).  However, when I run any .pl
scripts, for instance http://localhost/perl/test.pl:

#!/usr/bin/perl -w
print "Content-Type: text/html\n\n";
if($ENV{MOD_PERL}) { print "using mod_perl!\n"; }
else { print "NOT using mod_perl!\n"; }

I get a "download file" dialog, which means its not sending the
text/html content-type header, so its probably not being interpreted
(because I am using the PerlSendHeader directive, and the script is
chmodded to 755).

Additionally, whenever I try to access a .phtml file (which should be
parsed by a handler module, Onomatopoeia in this case), it's served up
as a static html document.
And, if I try http://localhost/perl-status, i get a 404.

Am I missing something obvious?  Perhaps I stumbled past something in
the docs?  I appreciate any help, sorry for the length message!

Reply via email to