Mason

Configuring Mason on your Dreamhost website.

Considerations
Dreamhost does not currently run mod_perl. Therefore, this approach assumes you will be writing your own handler for Mason requests. See the Mason Administrator's Manual for full details and other approaches. This also assumes you are comfortable on the command line.

Mason with FastCGI
Mason can run under FastCGI as easily as under CGI and it's much faster that way. This page has further discussion on way way to do that. It provides a more plug-and-play method of running Mason then the one presented here. (And it can be used with regular CGI as well, if you prefer.)

Directory Setup
Create a cgi-bin for the handler, and the mason directory for objects and cache files. For instance:
 * 1) mkdir ~/SITENAME/cgi-bin
 * 2) mkdir ~/mason
 * 3) mkdir ~/mason/obj
 * 4) mkdir ~/mason/cache

Mason CGIHandler
At ~/SITENAME/cgi-bin/mason_handler.cgi, create this file and chmod it 755. Note that the data_dir points to the mason directory we just created in the previous step:
 * 1) !/usr/bin/perl

use HTML::Mason::CGIHandler;

{       package HTML::Mason::Commands;
 * 1) this section optional, ties in custom perl modules

# anything you want available to components use lib qw(/home/username/perlmods/lib/perl/site_perl); use Module::Name; }

my $h = HTML::Mason::CGIHandler->new (       data_dir  => '/home/USERNAME/mason', ); $h->handle_request

Configure .htaccess
This is a very basic sample .htaccess file that serves up .mhtml files through Mason, and blocks access to component files (.mas) and the handler files. Salt to taste. DirectoryIndex index.mhtml index.cgi index.html index.htm index.html.var

AddHandler html-mason .mhtml Action html-mason /cgi-bin/mason_handler.cgi

 Order allow,deny Deny from all </FilesMatch

Testing
Create an index.html file and make sure Mason serves it up correctly. Watch the logs. Good luck!