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_modulemodules/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!