P
Pete Yadlowsky
Hi,
We recently ran into a problem caused by mod_ruby's practice of wiping
the environment clean and building it from scratch. A certain Perl CGI
script would get served by an Apache process (v1.3.29, mod_ruby 1.1.2,
AIX4.3) whose environment had previously been scrubbed by mod_ruby. This
particular Perl script expected to see the timezone variable 'TZ', but,
uh-oh, it's not there! In this case, we could get around the problem by
saying:
RubyPassEnv TZ
but in this diverse operating environment it's quite likely there would
be similar incidents with other scripts and other missing environment
variables. So, I modified mod_ruby (ruby_config.c) a bit to accept:
RubyPassEnv *
which instructs it to pass the existing environment in its entirety;
i.e. the contents of char **environ. I just thought I'd pass this idea
along in case someone else finds it useful as well.
There's an entry in mod_ruby's ChangeLog:
2/23/1999:
mod_ruby.c (setup_env): restore environment variables.
which would seem to indicate that, once upon a time, mod_ruby used to
restore the environment. If I'm reading this correctly, why did it stop
doing so? Just wondering.
We recently ran into a problem caused by mod_ruby's practice of wiping
the environment clean and building it from scratch. A certain Perl CGI
script would get served by an Apache process (v1.3.29, mod_ruby 1.1.2,
AIX4.3) whose environment had previously been scrubbed by mod_ruby. This
particular Perl script expected to see the timezone variable 'TZ', but,
uh-oh, it's not there! In this case, we could get around the problem by
saying:
RubyPassEnv TZ
but in this diverse operating environment it's quite likely there would
be similar incidents with other scripts and other missing environment
variables. So, I modified mod_ruby (ruby_config.c) a bit to accept:
RubyPassEnv *
which instructs it to pass the existing environment in its entirety;
i.e. the contents of char **environ. I just thought I'd pass this idea
along in case someone else finds it useful as well.
There's an entry in mod_ruby's ChangeLog:
2/23/1999:
mod_ruby.c (setup_env): restore environment variables.
which would seem to indicate that, once upon a time, mod_ruby used to
restore the environment. If I'm reading this correctly, why did it stop
doing so? Just wondering.