Ahem, sorry folks about the HTML email

Ryan Gies wrote:
I'm curious, how would this be possible with mod_perl? The below will fail as:

$r->add_config() has failed: <VirtualHost not allowed here

and when $r->add_config is changed to $r->server->add_config it will fail as:

Can't run '$s->add_config' after server startup


In /etc/hosts

127.0.0.1       local.example.com

In httpd.conf

PerlInitHandler Apache::Handlers::MyInitHandler

In Apache/Handlers/MyInitHandler.pm:

package Apache::Handlers::MyInitHandler;
use strict;
our $VERSION = 0;

use Apache2::RequestUtil ();
use Apache2::Const -compile => qw(DECLINED);

sub handler {
  my $r = shift;
  $r->add_config([
    '<VirtualHost *:80>',
    'ServerName local.example.com',
    'DocumentRoot /var/www/example.com/htdocs',
    '<Directory /var/www/example.com/htdocs>',
    'Order allow,deny',
    'Allow from all',
    'AllowOverride None',
    'Options None',
    '</Directory>',
    '</VirtualHost>',
  ]);
  Apache2::Const::DECLINED;
}

1;


Perrin Harkins wrote:
On Fri, Mar 28, 2008 at 8:30 AM, Valerio <[EMAIL PROTECTED]> wrote:
 Instead I need a solution that allow adding a vhost to the database
 without need of restarting apache.

This is not usually done with mod_perl because there are
lighter-weight solutions available.  There's some info on vhosts with
mod_rewrite and mod_vhost_alias here:
http://httpd.apache.org/docs/2.0/vhosts/mass.html

You can find apache modules built specifically for dynamically pulling
vhosts from a database here:
http://modules.apache.org/

You certainly could do this from mod_perl, but I wouldn't.

- Perrin

Reply via email to