PHP putenv()没有更新

Gar*_*een 1 php apache

在我的apache实例上,它设置了一个env变量APP_ENV=development.我试图在我的PHP端(在启动测试套件的实例中)动态更改它,如下所示:

putenv('APP_ENV=testing')
var_dump(getenv('APP_ENV')); // still returns development
Run Code Online (Sandbox Code Playgroud)

我试过了:

  • 在php.ini中以安全模式启动php
  • safe_mode_allowed_env_vars = PHP_ APP_在php.ini中设置

更新:

我使用的是PHP版本5.4.16,并注意到安全模式已被弃用.我不确定这是否意味着putenv甚至可以覆盖甚至取消现有的环境?

Sal*_*00m 6

您正在使用Apache变量,因此,您应该使用apache_setenv()apache_getenv()

apache_setenv('APP_ENV', 'testing');
Run Code Online (Sandbox Code Playgroud)

要恢复它使用:

apache_getenv('APP_ENV');
Run Code Online (Sandbox Code Playgroud)