nginx+php-fpm 设置$_SERVER变量(服务器和执行环境信息)的方法

CI的源代码中,开始定义了一个环境变量 ENVIRONMENT , 用来表明当前的运行环境,是线上的还是开发中的。这样就就可以设置是否报错。毕竟让用户看到错误信息是很不友好的。那么php中这个环境变量应该怎么产生呢?

首先看下CI中如何定义的

define('ENVIRONMENT', isset(_SERVER['CI_ENV']) ?_SERVER['CI_ENV'] : 'development')

了解更多php中环境变量的信息 PHP中环境变量 _SERVER 和_ENV的区别是什么

php中定义(服务器和执行环境信息)

$_SERVER 变量中包含的有两部分信息, web服务器的一些信息和执行环境的一些信息。

  1. 通过web服务器设置 $_SERFVER
  2. 通过执行的环境设置$_SERFVER

web环境下,比如用nginx可以通过 fastcgi_param 进行设置


location \.php {
    ...
    fastcgi_param     ENVIRONMENT  'development'; 
}

通过 php-fpm.conf  进行设置

env[ENVIRONMENT] = 'development'

设置好后,重新启动一下,就可以通过 $_SERVER[‘ENVIRONMENT’] 即可获取到。

apache 下的设置

<VirtualHost *:80>
...
SetEnv ENVIRONMENT development
...
</VirtualHost>

 

留言

您的电子邮箱地址不会被公开。