在IIS环境下新增PHP的$_SERVER参数

在Apache环境下,为了区别是开发环境或是正式环境,在CodeIgniter Framework里,透过下面这行代码来取得环境名称:

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

对应我们就正式环境里的htaccess里加了下面这个设定,就可以正确设置ENVIRONMENT这个系统常量。

SetEnv CI_ENV production

之后,我们就可以在代码里针对正式环境或是测试环境而有所区别的行为,比如:

// 依照执行环境不同指定资料库连线的db_debug属性
'db_debug' => (ENVIRONMENT !== 'production'),

同样的系统,应客户要求移植到Windows/IIS的环境底下时,htaccess就失效了,虽然Rewrite可以在web.config有对应的设定方式,SetEnv就一直找不到方法。

在经过不断的搜寻与尝试后,发现PHP里有一大部分的$_SERVER项目是对应Windows环境下Set指令所列出的项目:

在IIS环境下新增PHP的$_SERVER参数_第1张图片
set.png
在IIS环境下新增PHP的$_SERVER参数_第2张图片
server.png

因此着手在系统环境变量里新增的CI_ENV的项目:

在IIS环境下新增PHP的$_SERVER参数_第3张图片
setup.png

设定好之后,重启应用程序池,甚至是重启IIS服务都没效果,简直就要放弃了,

最后把服务器重启了....

然后就行了。

ok.png

你可能感兴趣的:(在IIS环境下新增PHP的$_SERVER参数)