【发布时间】:2016-12-16 22:03:41
【问题描述】:
在 Apache 中运行的 PHP:
if (! putenv ('PATH=/my/path:'.getenv('PATH')))
print 'putenv failed';
else
print getenv("PATH");
这打印/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,我指定的路径不存在。为什么不呢?
【问题讨论】:
-
您是否真的在与
putenv()相同的脚本中执行getenv()?然后它应该工作。如果您希望更改在不同脚本之间持续存在,那不是环境变量的工作方式。环境由子进程继承,它们不会传播回父进程。 -
肯定在同一个脚本中。连续的行,甚至。
-
我无法复制它。我使用的是 NGINX,而不是 Apache,但我认为一旦你在 PHP 中,这应该不会有所作为。