IIS6+PHP5 (FastCGI) 安裝攻略
發表於 : 2009-07-09 16:47:04
http://blog.linym.net/archives/264
以往 PHP 的執行模式可分成 CGI 及 ISAPI 兩種,CGI 的 performance 是出名的慢,而 ISAPI 是較多人使用的,但是在 Windows 卻穩定性不佳,經常會導致整個 web server crash,所以微軟特別針對 IIS 開發了 FastCGI 模組(IIS7 已內建),據說效能及穩定性都有大大改善。
安裝步驟:
1. 確認 IIS 已經裝好,然後下載 FastCGI Extension for IIS 6 並且安裝完成。
2. 到 PHP 官網下載新版 PHP5 壓縮檔,並且解壓縮(假設在 C:\PHP5)。
3. 將 C:\PHP5\php.ini-dist 改名為 php.ini,然後依需求編輯設定檔內容,範例:
(後三行必要)
include_path = ".;C:\Inetpub\wwwroot"
extension_dir = "C:\PHP5\ext"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_zip.dll
date.timezone = "Asia/Taipei"
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1;
4. 對 C:\PHP5 目錄增加 IIS_WPG 群組的讀取及執行權限。
(沒加這個就會跑出 FastCGI Error)
5. 加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。
Path=C:\PHP5;
PHPRC=C:\PHP5
6. 開啟 IIS 管理員,如下圖設定。
7. 增加預設首頁 index.php
8. 檢查網頁服務延伸。
(正常的話應該會有這一項,若沒有請自行加入 C:\WINDOWS\system32\inetsrv\fcgiext.dll)
9. 開始 > 執行 > cmd
輸入四道指令(注意路徑):
cd C:\WINDOWS\system32\inetsrv
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP5\php-cgi.exe"
cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
(視情況修改數值,InstanceMaxRequests 需小於等於 PHP_FCGI_MAX_REQUESTS)
10. 重新啟動 IIS 就 OK 囉,丟一個測試檔案到網站目錄看看吧!
※2009/03/19 補充:
使用 FastCGI 執行 PHP 程式時,系統是以「NETWORK SERVICE」這個身份執行的,而一般靜態檔案則是以 IIS 預設的匿名身份「IUSR_MachineName」執行,所以如果安裝上發生問題,請特別注意這個權限配置。
以往 PHP 的執行模式可分成 CGI 及 ISAPI 兩種,CGI 的 performance 是出名的慢,而 ISAPI 是較多人使用的,但是在 Windows 卻穩定性不佳,經常會導致整個 web server crash,所以微軟特別針對 IIS 開發了 FastCGI 模組(IIS7 已內建),據說效能及穩定性都有大大改善。
安裝步驟:
1. 確認 IIS 已經裝好,然後下載 FastCGI Extension for IIS 6 並且安裝完成。
2. 到 PHP 官網下載新版 PHP5 壓縮檔,並且解壓縮(假設在 C:\PHP5)。
3. 將 C:\PHP5\php.ini-dist 改名為 php.ini,然後依需求編輯設定檔內容,範例:
(後三行必要)
include_path = ".;C:\Inetpub\wwwroot"
extension_dir = "C:\PHP5\ext"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_zip.dll
date.timezone = "Asia/Taipei"
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1;
4. 對 C:\PHP5 目錄增加 IIS_WPG 群組的讀取及執行權限。
(沒加這個就會跑出 FastCGI Error)
5. 加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。
Path=C:\PHP5;
PHPRC=C:\PHP5
6. 開啟 IIS 管理員,如下圖設定。
7. 增加預設首頁 index.php
8. 檢查網頁服務延伸。
(正常的話應該會有這一項,若沒有請自行加入 C:\WINDOWS\system32\inetsrv\fcgiext.dll)
9. 開始 > 執行 > cmd
輸入四道指令(注意路徑):
cd C:\WINDOWS\system32\inetsrv
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP5\php-cgi.exe"
cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
(視情況修改數值,InstanceMaxRequests 需小於等於 PHP_FCGI_MAX_REQUESTS)
10. 重新啟動 IIS 就 OK 囉,丟一個測試檔案到網站目錄看看吧!
※2009/03/19 補充:
使用 FastCGI 執行 PHP 程式時,系統是以「NETWORK SERVICE」這個身份執行的,而一般靜態檔案則是以 IIS 預設的匿名身份「IUSR_MachineName」執行,所以如果安裝上發生問題,請特別注意這個權限配置。