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 common
Alias /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