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!