You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Alan <al...@ufies.org> on 2002/10/03 00:00:37 UTC
virtualhost based variables
Greetings again.
I'm trying to figure out the best/fastest/most elegant way of setting
virtualhost based variables. Basically I have three sites, and the only
difference between them is the DocumentRoot ($htdocroot) and the database
their data is being accessed from ($dbh).
When it was a single site I had $documentroot and $dbh declared in my
startup.pl, and my modules accessed it through $main::dbh, and it was
all find and dandy.
Is there a way to do this? Or do I have to use $r->dir_config in every
module to get the document root and re-create $dbh?
I know mod_perl 2.0 will solve this problem with the +Parent option, but
heading to apache 2.0 might not be an option at this point.
So how does everyone else do it? :)
TIA
alan
--
Alan "Arcterex" <al...@ufies.org> -=][=- http://arcterex.net
"I used to herd dairy cows. Now I herd lusers. Apart from the isolation, I
think I preferred the cows. They were better conversation, easier to milk, and
if they annoyed me enough, I could shoot them and eat them." -Rodger Donaldson
Re: virtualhost based variables
Posted by Alan <al...@ufies.org>.
On Wed, Oct 02, 2002 at 06:04:03PM -0500, James G Smith wrote:
> Alan <al...@ufies.org> wrote:
> >Greetings again.
> >
> >I'm trying to figure out the best/fastest/most elegant way of setting
> >virtualhost based variables. Basically I have three sites, and the only
> >difference between them is the DocumentRoot ($htdocroot) and the database
> >their data is being accessed from ($dbh).
>
> Document root should be accessable from $r.
>
> I would use Apache::DBI for persistent connections. Then connect at
> the beginning of the request with the DBI connection parameters
> coming from $r->dir_config.
Yup, and this is exactly how I have it working right now. Each module
starts by re-instantiating $dbh and $htdocroot via dir_config and a
function that uses dir_config to find the database it's supposed to grab
stuff from.
The problem is that it seems like I've incurred a pretty high speed
penalty, and my requests/sec have dropped from about 165 to 83 :( I'm
still pushing enough data to saturate a T1, so at the end it's not
going to be a noticable difference. I wanted to know if there was a
better/faster way to do this though, without having to call $r->dir_config
and $r->document_root for /every/ request.
Alan
--
Alan "Arcterex" <al...@ufies.org> -=][=- http://arcterex.net
"I used to herd dairy cows. Now I herd lusers. Apart from the isolation, I
think I preferred the cows. They were better conversation, easier to milk, and
if they annoyed me enough, I could shoot them and eat them." -Rodger Donaldson