我正在尝试在纯 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