![如何修复 /home/nginx/domains/mydomain.com/system/Config/BaseConfig.php 中的错误“未定义变量:_ENV”?](https://linux22.com/image/753512/%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%20%2Fhome%2Fnginx%2Fdomains%2Fmydomain.com%2Fsystem%2FConfig%2FBaseConfig.php%20%E4%B8%AD%E7%9A%84%E9%94%99%E8%AF%AF%E2%80%9C%E6%9C%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F%EF%BC%9A_ENV%E2%80%9D%EF%BC%9F.png)
我正在尝试在纯 NGINX + PHP-FPM 环境中安装 Codeigniter 应用程序,但它之前是在 apache 中开发的。
为了与 Codeigniter 一起工作而向 Nginx 添加所有适当的规则之后,我遇到了与我的 $_ENV 变量相关的错误。
Undefined variable: _ENV in /home/nginx/domains/mydomain.com/system/Config/BaseConfig.php ?
以下是调用 $_ENV 变量的代码:
case array_key_exists("{$shortPrefix}.{$property}", $_ENV):
return $_ENV["{$shortPrefix}.{$property}"];
break;
case array_key_exists("{$shortPrefix}.{$property}", $_SERVER):
return $_SERVER["{$shortPrefix}.{$property}"];
值得一提的是,当 CLI 中发生错误时,我尝试通过运行 php spark task:run task 来调用任务。
到目前为止我尝试做的事情:
1)我已通过以下方式向 PHP-FPM 添加了 _ENV 变量:
env[_ENV] = production
2)我在 CLI 中导出了 ENV 变量:
export _ENV=production
3)我在 Nginx Config 中添加了以下行:
location / {
fastcgi_param CI_ENV production;
}
似乎没有任何效果,并且我的 $_ENV 或 $SERVER 变量似乎总是空的,当我尝试运行我的任务时出现相同的错误。
我还能做什么来调试这个问题并设置我的 $_ENV 变量以便与我的应用程序一起正常运行?
答案1
找到解决方案!
将 PHP.INI 中此变量的默认值更改为 off 即可解决问题!
auto_globals_jit = Off