Hi Stas - > I propose the following "simple" solution: > > 1) Keep %ENV intact at the server startup, so anything set in the shell is > seen from perl > 2) PerlPassEnv and PerlSetEnv aren't run yet but postponed to until after > post_config. > 3) just before starting workers, detach %ENV from environ, cleaning it up > completely. now run PerlPassEnv and PerlSetEnv from (2) > > That way we don't have to deal with the painful timing of PerlPassEnv and > PerlSetEnv. We simply document that those have an affect *only* > post-post_config phase, i.e. starting from child_init phase. If someone > wants to modify %ENV as it's seen from shell, they can just do that with > <Perl> sections.
I like it a lot, it should be easy for people to understand the flow. Just want to make sure I understand something: I think in #3 above when you say "cleaning it up completely", you mean cleaning up environ completely (so workers don't inherit) but keeping %ENV available for PerlPassEnv, right? So I should be able to do something like this: (assume shell env has PATH and INSTANCE variables set) <Perl> $ENV{PATH} = $ENV{INSTANCE} eq 'development' ? "$ENV{PATH}:/extra/devl/path/needed/by/my/modules" : "$ENV{PATH}:/extra/prod/path/needed/by/my/modules"; </Perl> PerlPassEnv PATH (now worker %ENV contains modified PATH, but not INSTANCE) Yes? Thanks, Larry Leszczynski --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]