Hi,
I am trying a new way of managing mason virtual hosts with multiple
comp_root's. Here is a summary of my handler.pl script:
#!/usr/bin/perl
package HTML::Mason;
use strict;
use warnings;
use HTML::Mason::ApacheHandler;
{
package HTML::Mason::Commands;
## use many modules
use vars qw(%session $dbc);
}
my %ah_args = (
autohandler_name=>'ah.mc',
dhandler_name=>'dh.mc',
error_mode=>'fatal',
args_method=>'mod_perl',
);
my %ah;
sub handler {
my ($r) = @_;
## database init and session setup stuff deleted
$ah{$r->document_root} ||= new HTML::Mason::ApacheHandler(
%ah_args,
comp_root=>$r->document_root,
data_dir=>'/tmp/mason/'.$r->get_server_name,
);
my $m = $ah{$r->document_root()}->prepare_request($r);
my $status = ref($m) ? $m->exec : $m;
return $status;
}
Basically it turns each mason virtual host's DocumentRoot into its own
comp_root. That way I can install mason sites anywhere in the filesystem
hierarchy without touching mason's configuration. When I need to share
components between sites I pull a 'share/' directory with svn.
Only mason sites will trigger that handler because my mason pages use a
special .md extension:
AddType text/html .md
AddHandler perl-script .md
DirectoryIndex index.md
<Files *.md>
PerlHandler HTML::Mason
</Files>
Is there any gotcha with using that system?
Thanks,
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Mason-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mason-users