Default list of exported variables in sh(1) - $HOSTNAME
Mel
fbsd.questions at rachie.is-a-geek.net
Mon Dec 29 21:05:44 UTC 2008
On Monday 29 December 2008 11:12:33 Brian A. Seklecki wrote:
> > > SSH_CONNECTION
> > > FTP_PASSIVE_MODE
> > > EDITOR
> >
> > I suspect linux to set them from .profile files (even /etc/profile) and
> > not hardcoded in a shell or login program. The default skeletons
>
> Mel:
>
> You were right to some extent. However, the problem is more
> complicated (or less complicated, depending).
>
> First, FreeBSD's default php.ini doesn't have:
>
> $variables_order = "EGPCS", so $ENV[] array wasn't getting popualted at
> all.
The port only installs php.ini-dist and php.ini-recommended, which are the
ones from the PHP source tree. If neither of these is copied to php.ini then
php.ini-dist is hardcoded inside php itself, also not something the FreeBSD
port alters.
> Second, Apache FreeBSD RC scripts inherit the user environment from
> sudo(8) unless you pass -H or -i flag/args
>
> E.x.:,
>
> % sudo -H -i -u root /usr/local/etc/rc.d/apache22 restart
>
> Compared to:
>
> $ su -
> Password:
> $ /usr/local/etc/rc.d/apache22 restart
>
> Result in completely different results in PHP's $_ENV[]
As expected.
However, stuff in /etc/profile applies to all Bourne type shells.
> Additionally, the results of "$ su -" differ completely from the shell
> environment that executes when rc(8) is first run at boot time.
Correct. You can however clean the entire environment, by setting
apache22limits_enable="YES" and apache22limits_args="-e -E -C daemon".
If you need specific variables to be available and the rest to be gone, the
standard rc script doesn't support it. You'd have to roll your own.
> I may be better off using getenv() in PHP directly.
For portability yes, since it doesn't rely on EGPCS, but otherwise they give
the same results.
--
Mel
Problem with today's modular software: they start with the modules
and never get to the software part.
More information about the freebsd-questions
mailing list