Carl Brewer wrote:
I believe there is a CPAN module that makes it a bit cleaner and less hack-ish:
MasonX::Apache2Handler http://search.cpan.org/dist/MasonX-Apache2Handler
Thanks Philippe, I've found that now and built a NetBSD pkg for it.
But, I'm having trouble using it. I really want to stay clear of mp1, but am having trouble getting this handler to work.
I keep seeing this :
[Tue Oct 26 13:28:53 2004] [error] [client 211.26.251.34] Can't locate object method "server_root_relative" via package "Apache::ServerRec" at /usr/pkg/lib/perl5/site_perl/5.8.4/MasonX/Apache2Handler.pm line 618.\n
My setup at the moment (which is very fluid as I try things to try and fix the problem!) :
<VirtualHost 203.6.241.155>
DocumentRoot /home/benfab/htdocs
ServerName benfab.bl.echidna.id.au ErrorLog /home/benfab/logs/error_log
CustomLog /home/benfab/logs/access_log commonAlias /admin/ "/home/benfab/admin/"
# these four lines apply to Apache2+mod_perl2 only: {{{
PerlSetVar MasonArgsMethod CGI
#PerlModule Apache2 Apache::compat
PerlModule Apache2
PerlRequire "/home/benfab/lib/startup.pl" #PerlModule Apache::Reload
#PerlModule Apache::Request
#PerlModule Apache::Cookie
#PerlInitHandler Apache::Reload
#PerlSetVar ReloadAll Off #PerlSetVar _MasonUser www
#PerlSetVar _MasonGroup www
#PerlSetVar _MasonDefaultDocumentRoot "/home/benfab/htdocs" #RewriteEngine On
#RewriteRule ^(.*)/$ $1/index.html <LocationMatch "(\.html|\.txt|\.pl)$">
SetHandler perl-script
#PerlHandler HTML::Mason::ApacheHandler
PerlResponseHandler MasonX::Apache2Handler
</LocationMatch>
<LocationMatch "(\.m(html|txt|pl)|dhandler|autohandler)$">
SetHandler perl-script
#PerlInitHandler Apache::Constants::NOT_FOUND
</LocationMatch> <Location />
#SetHandler perl-script
#PerlHandler HTML::Mason::ApacheHandler
SetOutputFilter DEFLATE
</Location>
</VirtualHost>
the startup.pl script is : # http://perl.apache.org/docs/2.0/user/config/config.html
use Apache2 ();
# /usr/pkg/lib/perl5/site_perl/5.8.4/HTML/Mason/ApacheHandler.pm
use lib qw(/home/benfab/lib /usr/pkg/lib/perl5/site_perl/5.8.4/HTML/Mason/);
use ModPerl::Util (); #for CORE::GLOBAL::exit
use Apache::RequestRec (); use Apache::RequestIO (); use Apache::RequestUtil ();
use Apache::ServerRec (); use Apache::ServerUtil (); use Apache::Connection (); use Apache::Log ();
use APR::Table (); use APR::Pool ();
use ModPerl::Registry ();
use Apache::Const -compile => ':common'; use APR::Const -compile => ':common';
1;
From googling around, the error message is something to do with mp2 in compat mode, which I'm specifically trying to eliminate and avoid - and as my test page is simply this :
/home/benfab/htdocs/index.html <% 2+2 %>
I'm not using anything that should or could call it?
any suggestions?
Carl
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
