Why is www's $PATH only /usr/bin:/bin?
Bertram Scharpf
lists at bertram-scharpf.de
Wed Apr 27 12:12:21 UTC 2016
On Tuesday, 26. Apr 2016, 21:40:48 +0200, Niklaas Baudet von Gersdorff wrote:
> I figured that www's $PATH is only /usr/bin:/bin. Why is that if
> /etc/login.conf says the following?
>
> default:\
> --------8<--------
> :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
> --------8<--------
> The thing is that I want to run something in /usr/local/bin with PHP's
>
> shell_exec($cmd);
>
> but that's not working because it's not in $PATH.
I wondered as well about this behaviour sometimes. The
default path from login.conf will be set at login. Yet, the
www daemon is started from rc and this is not understood to
be a login. The perverse thing is that when you do a
"/usr/local/etc/rc.d/apache24 restart" from the command
line, then the PATH variable will contain the value you
expect.
I recommend to include a line into your Apache configuration
(or whichever HTTP server you use) like
SetEnv PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
Cron does the same by "PATH=..." as you can see in
"/etc/crontab". There is no possibility to do this in lpd,
wherefore I wrote a bug report. Have a look at the
description.
<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205604>
Bertram
--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de
More information about the freebsd-questions
mailing list