我在Windows (系统Propeties-> Advanced->环境变量)上设置环境变量,并尝试从php代码访问它,如下所示:
getenv('ENV');
我的php在Xampp的Apache服务器上运行,它返回false
。
我读到这一点,出于安全原因,我必须使用PassEnv
指令,以便Apache识别环境变量。我尝试在.htaccess
和.conf
文件中使用它,但没有成功。
想了解我所缺少的内容,以及如何访问环境变量。
答案 0 :(得分:1)
您必须重新启动PC才能通过PHP读取新环境。这就是我的方式。我通过(System Propeties->Advanced->Environment Variables)
设置了一个环境变量,然后检查它返回bool(false)
。我重新启动了我的电脑并再次检查,现在它工作了。所以我建议你重新启动并再次检查。
编辑:
此外,如果删除Windows环境变量并在PHP中检查变量而不重新启动;它仍将显示价值。这意味着环境变量会暂时存储,直到PC重新启动。我对Windows API没有太多想法,但这是它的工作方式。
我还有两个可以帮到你的有用链接
编辑:
还有另一种解决方案,我在php.net中将php.ini文件[variables_order = "GPCS"]
中的变量顺序更改为[variables_order = "EGPCS"]
并重新启动APACHE。 EGPCS是(Environment, Get, Post, Cookie, and Server)
变量解析。这将创建$_ENV
变量。尝试通过$_ENV['ENV']
;
答案 1 :(得分:0)
尝试在 php.ini 文件中将变量variable_order
设置为"EGPCS"
,而不是开发人员和生产值"GPCS"
,然后重新启动服务器进程。