CI的源代码中,开始定义了一个环境变量 ENVIRONMENT , 用来表明当前的运行环境,是线上的还是开发中的。这样就就可以设置是否报错。毕竟让用户看到错误信息是很不友好的。那么php中这个环境变量应该怎么产生呢?
首先看下CI中如何定义的
define('ENVIRONMENT', isset(_SERVER['CI_ENV']) ?_SERVER['CI_ENV'] : 'development')
了解更多php中环境变量的信息 PHP中环境变量 _SERVER 和_ENV的区别是什么
php中定义(服务器和执行环境信息)
$_SERVER 变量中包含的有两部分信息, web服务器的一些信息和执行环境的一些信息。
- 通过web服务器设置 $_SERFVER
- 通过执行的环境设置$_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>