Brat Wizard wrote:
> Hmm- looks like the answer is this-- perl maintains one @INC array per perl 
> interpreter invocation, which normally is sufficient because each program run 
> will load its own copy of the interpreter. However, under Apache/Mod_Perl, 
> only one copy of the interpreter is running, and so each local path pushed 
> onto the @INC array is shared between all the running scripts. What order is 
> dependant on how apache loaded the virtual hosts, etc. So normally this would 
> not be a problem but in the case of mod_perl it is. 
> 

In order to support dev & production environment on the same hardware,
I would run web servers on different ports.  This way, no odd in memory
data corruption ( like dev & prod perl library overlaps ) can occur.
Because of mod_perl's persistent nature, anything bad in dev has a chance
to escape to production, take as another example a global hash $Config
that you define in a module namespace.

So then I would run production web server on port 80, and a dev web server
on some arbitrary high port like 8000.  You could also use multiple IP
aliases for a NIC & have apache bind to only one IP address on the card
at a time per server, and do per IP web server instead of per port.

If you really want to continue on your current path, you might look at
Apache::PerlVINC, which was designed to overcome the direct problem you
are talking about.  The recommendation of the author of this module
is to only use it in development, not production, at least because of
performance issues.

Regards,

Josh
________________________________________________________________
Josh Chamas, Founder                   phone:925-552-0128
Chamas Enterprises Inc.                http://www.chamas.com
NodeWorks Link Checking                http://www.nodeworks.com


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

Reply via email to