sgifford has asked for the wisdom of the Perl Monks concerning the following question:
I'm looking at using a Perl module to dynamically set up some virtual hosts at run-time.
mod_perl is what I'm looking at, of course, and PerlMapToStorageHandler seems like just about what I want. I can look up the user information in the database based on $r->hostname(), find their home directory, then call $r->filename($new_path) to set up the mapping. If I can get this to work, I'll cache the results, so I won't have to hit the database very often.
But, that method doesn't seem to work like I expect it to. Just to test, I wrote this sub, which should cause all requests to return test.txt:
Instead, I get this in the error log:sub handler { my $r = shift; my $newfn = "/var/www/test.txt"; warn "In PerlMapToStorageHandler Handler, hostname " . $r->hostnam +e() . ", uri " . $r->uri() . ", filename " . $r->filename() . ", new filename $newfn\n"; $r->filename($newfn); return Apache2::Const::OK; }
and a 404 error in the browser.In PerlMapToStorageHandler Handler, hostname www.example.com, uri /, f +ilename /var/www/, new filename /var/www/test.txt [Sun Oct 11 22:12:38 2009] [error] [client 174.129.128.58] File does n +ot exist: /var/www/test.txt
The background is I'm working on a clustered environment with virtual hosts that are added from a Web interface. I'd like to be able to set up new virtual hosts by adding to the database and having Apache pick them up automatically, without the Web interface script having to arrange for the cluster of Web servers to be restarted. If somebody has a better idea for solving this problem, please let me know.
Thanks!
Updates: A few things other Monks have asked below that I should have included in the original.
- This is on an up-to-date Debian Lenny, with Apache 2.2.9, mod_perl 2.0.4, and Perl 5.10.0.
- It's a Debian default setup, no chroot jail, etc.
- File /var/www/test.txt exists and is readable by the Web server. If I change Apache's configuration to use /var/www as its DocumentRoot, the file shows up.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: mod_perl PerlMapToStorageHandler
by jethro (Monsignor) on Oct 12, 2009 at 09:57 UTC | |
by sgifford (Prior) on Oct 12, 2009 at 14:47 UTC | |
Re: mod_perl PerlMapToStorageHandler
by Anonymous Monk on Oct 12, 2009 at 09:13 UTC |