package MyApp::MasonPlusSession;

use strict;
use warnings;

use HTML::Mason::ApacheHandler;
# This does not come with the Mason core code.  It must be installed
# from CPAN separately.
use MasonX::Request::PlusApacheSession;

my $ah =
    new HTML::Mason::ApacheHandler
        ( request_class => 'MasonX::Request::PlusApacheSession',
          session_class => 'Apache::Session::File',
          # Let MasonX::Request::PlusApacheSession automatically
          # set and read cookies containing the session id
          session_use_cookie => 1,
          session_directory => '/tmp/sessions',
          session_lock_directory => '/tmp/session-locks',
          comp_root => '<component root>',
          data_dir => '<data directory>' );

sub handler
{
    my ($r) = @_;

    my $status = $ah->handle_request($r);
    return $status;
}

1;


__END__

In your httpd.conf, add something like this:

 PerlRequire MyApp::MasonPlusSession

 <LocationMatch "\.html$">
   SetHandler perl-script
   PerlHandler MyApp::MasonPlusSession
 </LocationMatch>