in reply to Re: Question about web trees, html paths, and HTML::Template
in thread Question about web trees, html paths, and HTML::Template

Only the files in domain1 and domain2 directories (and sub-directories) are web-accessible.

Sheesh, I can't believe I didn't know that. Okay, that's a great concept to keep in mind as I foray into the webhosting realm.

I don't lose that much by keeping common images in each domain, as they never change, or if they do it's only for that domain. What still works is to have all domains using the same Perl and templates so, for example, instead of upgrading a Perl script in each of the domains, I only change it in one place.

Perfect. Thanks all!

—Brad
"The important work of moving the world forward does not wait to be done by perfect men." George Eliot
  • Comment on Re^2: Question about web trees, html paths, and HTML::Template

Replies are listed 'Best First'.
Re^3: Question about web trees, html paths, and HTML::Template
by dsheroh (Monsignor) on Apr 06, 2008 at 15:29 UTC
    I don't lose that much by keeping common images in each domain, as they never change, or if they do it's only for that domain.

    You can use vhosts and still do the "shared image directory" thing by symlinking your image directory into each vhost's document tree, assuming this is on a unix-type system. (See man ln if you're not familiar with it already.)

      Brilliant. I hadn't thought of that. And yes, this is Debian 4.x so no issues there.

      Update: created a common images folder and then symlinked to it from each domain and worked like a champ. Thanks.

      —Brad
      "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
Re^3: Question about web trees, html paths, and HTML::Template
by nedals (Deacon) on Apr 06, 2008 at 18:01 UTC

    What still works is to have all domains using the same Perl and templates so, for example, instead of upgrading a Perl script in each of the domains, I only change it in one place.

    Think about using modules to control your script processing.

    use strict; use CGI; use CommonModule; use HTML::Template; my $q = CGI->new(); my $module = CommonModule->new( form_data => $q; ); my %templ_hash = $module->process_data(); my $template = HTML::Template->new(filename="$path/file.tmpl"); $template->param(%templ_hash); print $q->header(); print $template->output(); exit;

    This would be the basic form of your .cgi scripts in each domain which are unlikely to change. Now any edits you do in the module or template will be applied to each domain.

      I'd be curious to see what CommonModule looks like just so that I understand your example. Thanks.

      —Brad
      "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
        This is just a rough example. Check out some of the tutorials on Modules
        package <path>::CommonModule; use strict; sub new { my $self = bless({}, shift); ## So you could parse a multiple-valued hash if needed for (my $i=0; $i<@_; $i+=2) { defined($_[($i + 1)]) || die("CommonModule called with odd number +of parameters"); $self->{$_[$i]} = $_[($i+1)]; } return $self; } sub process_data { my $self = shift; ## something similar to your current cgi script processing my $form_item = $self->{formdata}->param('formname'); # get the for +m data ... ... my %templ_hash = ( #just like you would create your template hash ... ); return %templ_hash; } 1; # Don't forget to add this.