On 11/29/2011 10:29 PM, Nishikant Kapoor wrote:
I have been running a ModPerl site fine with following configuration.
The problem started when I made a complete copy of the original site and
tried to run the two in the same environment. For some reason, calling
up the ORIG site (http://127.0.0.1/ORIG/) now calls the COPY site at
http://127.0.0.1/COPY/. None of the changes made in ORIG::MODS::base.pm
are getting picked up even after restarting the apache server. However,
changes to COPY::MODS::base.pm are showing up fine.
The problem is that mod_perl uses the same Perl interpreter for
everything (by default) and that interpreter is persistent. I'm guessing
that your "package" declaration in ORIG::MODS::base.pm and
COPY::MODS::base.pm are the same. Perl won't load 2 packages of the same
name. The usual solutions are:
1) rename your modules so that they don't have the same package names.
2) run multiple separate apaches on the same physical server (not as
hard as it seems to most people and pretty easy to do if you're running
a proxy in front. And you really should be running a proxy in front).
3) Try to have multiple Perl interpreters using a different Apache MPM.
I haven't seen anyone give a definitive guide to how to do this
(although I could have missed something) and results seem to be mixed.
I prefer #2 and use it constantly. It also makes it really easy to have
separate dev environments each using their own code.
--
Michael Peters
Plus Three, LP