大多數人普遍認為IIS只能運行一般網頁與ASP語言,但其實是可以透過CGI(Common Gateway Interface)將PHP運行在IIS上,不必另外裝apache,也不用擔心port衝到的問題。此篇將著重在設定部分,假設讀者們都已安裝好PHP(若無可透過官方PHP下載或WAMP等方式)。

此篇設定之環境為

  • Windows Server 2008 R2
  • PHP6
  • IIS 7.5

修改php.ini

將php.ini-recommended複製或直接更名成php.ini。修改以下資訊
  • (約在578行)將 ; extension_dir = "ext" 改成 extension_dir = "ext"
  • (約在480行)將 ;cgi.force_redirect = 1 改成 cgi.force_redirect = 0
  • (約在498行)將 ;cgi.fix_pathinfo=1 改成 cgi.fix_pathinfo=1
  • (約在505行)將 ;fastcgi.impersonate = 1; 改成 fastcgi.impersonate = 1
  • (約在600行)將 ;extension=php_mbstring.dll 改成 extension=php_mbstring.dll
  • (約在607行)將 ;extension=php_mysql.dll 改成 extension=php_mysql.dll
  • (約在608行)將 ;extension=php_mysqli.dll 改成 extension=php_mysqli.dll
  • (約在640行)將 ;date.timezone = 改成 date.timezone = "Asia/Taipei"
  • (約在302行)將 error_reporting = E_ALL  改為 error_reporting = E_ERROR & ~E_NOTICE & ~E_WARNING

修改權限

IIS設定

開啟IIS管理員,選擇web站台,點選"處理常式對應"。

點選右邊的新增模組("Add Module Mapping"),要求路徑(Request path)請輸入:*.php,模組(Module)請選擇FastCgiModule,執行檔(Executable)請選擇安裝的php資料夾內的php-cgi.exe檔:D:\AppServ\php6\php-cgi.exe,名稱可自定。

如此一來便設定完成,可自行產生一個phpinfo檔案測試即可。

Reference