> From: Steve Wilder [mailto:[EMAIL PROTECTED] 
> Subject: Apache virtulahosts sharing modules
> 
> 
>   Hello, all.
> 
>   I'm using Apache 1.3.29 and  Embperl 1.3.6
> 
> I've got two Apache Virtualhosts: www.benwilder, and 
> rhyme.benwilder.com
> 
> Both sites have a "test1.phtml" which looks like this:
> ----------------------------
> [! use test1; !]
> 
> [+ test1::whereami() +]<br>
> ----------------------------
> 
> Both sites have a test1.pm file which sits in their Document Root

This causes issues within mod_perl. Mod_perl caches things based on
namespace, just like perl, so eventually you get the case where the
module is not reloaded and you have sync issues.

> The problem is that if I reload one or the other enough 
> times, it will 
> begin using the other sites test1.pm!  I need each site to 
> only use it's 
> own test1.pm.
> 
> If I restart Apache, the problem goes away for a time, but will come 
> back if I reload one or the other enough times.
> 
> BTW: In my httpd.conf, I set "PerlSetEnv PERL5LIB" in the VirtualHost 
> directive to its own Document Root.
> 
> How do I lock each VirtualHost to it's own test1.pm module?

I have never found a really nice way to get around this issue - perhaps
others have. Occasionally I have resorted to Apache::PerlVINC
(http://search.cpan.org/dist/Apache-PerlVINC/) but this removes all the
caching speedups you get with mod_perl by unloading the modules at the
end of every request. Even then I've found cases where non-cleaned-up
references cause unloads to fail and you end up with sync issues again.

Your best bet is to have site-specific information set up at the embperl
request level. Ie have constants/whatever initialised in base files
rather than having that kind of logic in the modules.

Anyone have other ideas?

Cheers,

Andrew

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to