WordPress中wp-config.php环境变量无法被插件读取问题排查
问题原因与解决方案
你通过define()在wp-config.php里定义的是PHP常量,而getenv()函数的作用是读取系统环境变量(或PHP$_ENV超全局数组中的变量,取决于variables_order配置),二者属于完全不同的变量体系,所以getenv()无法获取到define()定义的常量。
可行的解决办法
方法1:直接读取PHP常量
既然你是用define()定义的PHP常量,就用PHP的方式读取:
- 方式A:直接使用常量名(最简单)
function get_my_env_variable() { return MY_ENV_VARIABLE; }
- 方式B:用
constant()函数(适合常量名是字符串的场景)
function get_my_env_variable() { return constant('MY_ENV_VARIABLE'); }
方法2:改为设置环境变量
如果一定要用getenv()读取,需要把变量设置为环境变量而非PHP常量:
- Apache服务器:在
.htaccess中添加
SetEnv MY_ENV_VARIABLE some_string
- Nginx服务器:在站点配置的
fastcgi_param区域添加
fastcgi_param MY_ENV_VARIABLE some_string;
- PHP配置:在
php.ini中设置(需确保variables_order包含E)
variables_order = "EGPCS" MY_ENV_VARIABLE = some_string
内容的提问来源于stack exchange,提问作者Les
相关产品推荐
相关产品推荐

