事前準備

首先,先到PHP官網 (https://windows.php.net/download)下載PHP套件,下載後,在C槽新建一個[php]資料夾,並把剛剛下載的檔案解壓縮到[php]資料夾中

備註:要下載的PHP版本依官網當時所提供的最新版本,並且下載Thread safe的版本

 

PHP環境設定

1.在[php]資料夾中,有兩個設定的安裝範例檔案 (php.ini-development 及 php.ini-production),因穩定性上的考量,使用 php.ini-production 這個檔案為例來設定php。將php.ini-production檔案進行複製,並在原資料夾[php]貼上,然後檔名改為 php.ini。

2.開啟php.ini檔案,並從檔案中尋找下列php設定內容,然後將註解符號(;)拿掉,完成後存檔。

範例 (依extension_dir = "ext"為例):

拿掉註解符號(;)後如下圖

[PHP設定] (下列敘述詳細說明請點此)

extension_dir = "ext"
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=curl
date.timezone = "Asia/Taipei"

 

IIS (Internet Information Service) 對PHP的設定

1.開啟「Internet Information Services (IIS) 管理員」,然後選擇[處理常式對應]

2.然後選擇,[新增模組對應]

3.出現下列視窗後,視窗內容請按照下圖填寫,填寫完後按[確定]

備註:在[執行檔]選擇檔案的時候,記得將附檔名的部分選擇[*.exe]才可以選擇php-cgi.exe

找不到FastCgiModule? (點此連結進行教學安裝)

4.出現下列視窗,請按[是]

 

在IIS (Internet Information Service) 上安裝與設定PHP整個流程完成,可以試著建一個網頁(php檔)在IIS預設的目錄下,看看php檔的網頁可不可以成功開啟

 

其它教學和說明

 

PHP設定

extension_dir = "ext"               設定應用程式擴充檔(.dll)放置的路徑,檔案 php.ini提供的內容是指設定php資料夾中內的[ext]資料夾
cgi.force_redirect = 0
cgi.fix_pathinfo=1                   使PHP修正路徑以符合標準
fastcgi.impersonate = 1           使IIS的FastCGI模擬應用程式的安全金鑰
extension=mbstring                 mbstring 函式庫,全名叫Multibyte String,是一個編碼模組,用來處理語言編碼...等等之類的問題
extension=openssl                   網頁加密(SSL)模組
extension=pdo_mysql              SQL資料庫模組
extension=curl                        curl 函式庫,全名叫Client URL Library Function
date.timezone = "Asia/Taipei"   設置時區,若未設定,將以標準時區 (GMT+0) 為主

 

FastCgiModule

 

選擇[模組]的時候,會發現怎麼沒有FastCgiModule,代表Windows 作業系統沒有安裝,至於如何安裝,從[控制台] -> [程式和功能] -> [開啟或關閉windows 功能],然後從[Internet Information Services] -> [World Wide Web 服務] -> [應用程式開發功能] ->將[CGI]打勾並按[確定],當Windows 安裝完後,在IIS (Internet Information Services) 選擇模組的時候就可已看到了

FastCGI介紹

FastCGI 是二位元的通訊協定,處理網路伺服器與程式的介面,FastCGI 是早期 CGI 的變形,其主要目的是為了減少伺服器執行 CGIs 產生過多的負載,允許伺服器同時處理多個網頁請求。CGI 應用程式在每一次的請求時產生新的程序 (Process),且在請求完成後結束此程序,此方式讓 CGI 程式容易實作,卻也在大量的請求時,持續產生及結束程序的方式會導致過度負載,此外各個程序間也無法共享資源 (資料庫連線、快取等等)。

FastCGI 則是保有一個持續存在的程序,藉由此程序處理一系列的請求,而程序與伺服器間的連線會一直保持,並不會隨請求完成後而關閉。每一次請求來時,持續存在的程序產生一個進程,由此進程處理請求,因為所有的進程都是由同一個程序產生的,所以彼此間可以享有共同資源,另外伺服器也可以藉由一次傳送多個請求,或是保有多個連線的方式達到節省傳遞的成本。

 

查看原文 >>
相关文章