终端和PHP中的路径不同
我在终端中有命令sudo-u www-data-echo$PATH的下一个结果:终端和PHP中的路径不同,php,linux,apache,Php,Linux,Apache,我在终端中有命令sudo-u www-data-echo$PATH的下一个结果: /home/denis/node-v0.12.0/bin:/home/denis/node-v0.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 如果我运行命令echo`echo\$PATH`,我将在PHP中得到下一个结果: /usr/local/sbin:/usr/
/home/denis/node-v0.12.0/bin:/home/denis/node-v0.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
如果我运行命令echo`echo\$PATH`,我将在PHP中得到下一个结果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
终端和PHP中的路径不同。我不明白为什么。按照给定的字面意思运行命令
sudo -u www-data echo $PATH
在执行sudo
之前,shell会展开$PATH
(并显示$PATH
)。但是,如果您正确地引用了这一点,它可能会延迟到sudo'd用户中,并暴露出不同的问题
除非您对此做了特殊规定(选择sudo
,这可能/可能不起作用),否则在使用sudo
时,诸如PATH
之类的环境变量将重置为系统默认值。有关进一步讨论,请参阅