Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Hello,

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:

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; }
Instead, I get this in the error log:
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
and a 404 error in the browser.

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.

In reply to mod_perl PerlMapToStorageHandler by sgifford

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2024-04-18 20:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found