On 19.08.2017 23:29, Ben RUBSON wrote:
On 19 Aug 2017, at 22:40, Ben RUBSON <ben.rub...@gmail.com> wrote:

Hi list,

I have a question regarding tuning @INC at VirtualHost level, with prefork MPM.
(...)
will I have 2 (2 different PerlSwitches configurations)
or 11 (11 different VH using PerlSwitches) interpreters launched ?

Well, reading at Parent (which is needed), gave me the answer :
https://perl.apache.org/docs/2.0/user/config/config.html#C_Parent_

I will have 11 interpreters.

So a better configuration would be :

PerlSwitches -T -I/home/production/lib/perl
<VirtualHost prod1>
     ...
</VirtualHost>
<VirtualHost prod2>
     ...
</VirtualHost>
<VirtualHost prodn>
     ...
</VirtualHost>

<VirtualHost dev>
     PerlOptions +Parent
     PerlSwitches -I/home/development/lib/perl
</VirtualHost>

However, here is what I have reaching VH dev :
[warn] -T switch is ignored, enable with 'PerlSwitches -T' in httpd.conf
And according to ${^TAINT}, taint is no more enabled in VH dev.
Any workaround ?


Maybe another possible solution for what I think you are trying to achieve.
...
<VirtualHost dev>
  ProxyPass "/" "http://dev.sameserver.local:8000/";
  ProxyPassReverse "/" "http://dev.sameserver.local:8000/";
</VirtualHost>

Add this to the local /etc/hosts file:
127.0.0.1 dev.sameserver.local

and run *another Apache instance*, with another perl/mod_perl, on port 8000,
with a
<VirtualHost *:8000>
  ServerName dev.sameserver.local
...
</VirtualHost>
and watever @INC you want.

For the clients, it will look just the same (they continue to access "http://dev.company.com:80/*";). There will be a (very small) overhead for the proxying, but which affects only your dev people.
You can (carefully) share a DocumentRoot and whatever with the main instance, 
or not.
And it will certainly use less memory than 11 perl interpreters per Apache 
child.

Reply via email to