On Mon 03 Dec 2007, John ORourke wrote:
> I have some apps where users want to add extra domains and I'd like to
> do it on the fly if possible - in other words, modify the ServerAlias
> list from within mod_perl. Does anyone have any tips/pointers/archives?
You mean you need a PerlTranslationHandler plus maybe a
PerlMapToStorageHandler that inspect $r->hostname and add some configurations
depending on it? Maybe Apache2::Translation can help.
Otherwise you can only edit the config file and restart apache.
Adding or modifying a ServerAlias at runtime is not possible in Perl. Even a
PerlPostReadRequestHandler is run after the request is assigned to a vhost,
see server/protocol.c:
/* Get the request... */
if (!read_request_line(r, tmp_bb)) {
...
ap_get_mime_headers_core(r, tmp_bb);
/* update what we think the virtual host is based on the headers we've
* now read. may update status.
*/
ap_update_vhost_from_headers(r);
...
if ((access_status = ap_run_post_read_request(r))) {
...
read_request_line reads the GET/HEAD/POST/... line, ap_get_mime_headers_core
reads the http headers and ap_update_vhost_from_headers switches to a name
based vhost. Only after that the post read request phase is run. So you can't
interfere before the request is assigned to the vhost.
Torsten