在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指令所列出的項目:

set.png
server.png

因此著手在系統環境變量里新增的CI_ENV的項目:

setup.png

設定好之后,重啟應用程序池,甚至是重啟IIS服務都沒效果,簡直就要放棄了,

最后把服務器重啟了....

然后就行了。

ok.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容