我定义一些环境变量,像APP_ENV在我的/etc/environment文件中,在我的ArchLinux的。
如果我输入printenv,我会看到它们。
我创建了这个简单的测试文件,名为… test.php
<?php
var_dump(getenv('APP_ENV'));
var_dump(getenv());
Run Code Online (Sandbox Code Playgroud)
如果我运行php test.php,一切正常,我会看到我的 ENV 变量。
但是当我尝试通过 HTTP 访问文件时……我的环境中什么也没有!
当然,我已经改变了/etc/php/php-fpm.d/www.conf设置clear_env = no
这些是受影响的行:
; Clear environment in FPM workers
; Prevents arbitrary environment variables from reaching FPM worker processes
; by clearing the environment in workers before env vars specified in this
; pool configuration are added.
; Setting to "no" will make all environment variables available to PHP code
; via getenv(), $_ENV …Run Code Online (Sandbox Code Playgroud)