天天看點

IIS配置PHP環境(快速最新版)

今天有個小web需要php環境運作,為了配置,下了番苦功!終于可以顯示了:

IIS配置PHP環境(快速最新版)

我們知道php配置有幾種:

1、CGI方式加載PHP環境,通常就是IIS裡面配置解釋器為php.exe,早期比較常見,目前使用較少。

特點是:穩定,但效率太低。

2、ISAPI方式加載PHP環境,通常就是IIS裡面配置解釋器為php5isapi.dll,目前使用最多,應用最廣。

特點是:多線程,效率較高,但不夠穩定。

3、FastCGI方式加載PHP環境,在IIS環境裡并不常見,但其它系統環境應用還是有的,不過IIS7.0開始内置FastCGI了。

特點是:高效率,高穩定性,屬于将來發展趨勢。

我試過其他的特别麻煩,PHP 5.3釋出的Windows版已經不支援ISAPI模式了,是以我打算按微軟推薦的FastCGI方式運作PHP。

我用的就第三種,也是最好最快的,因為FastCGI大大加強了IIS處理PHP的能力,能迅速提高PHP站點的反應速度和生産力,

并具有更高的穩定性和安全性.

     下載下傳位址:​​http://windows.php.net/download/​​裡面有好多種,要那種呢?

PHP現在推出5.3.2版本了,不過下載下傳的時候有幾個不同版本選擇。那就是VC6 X86和VC9 X86。

首先我來解答:

VC6是什麼?

VC6就是legacy Visual Studio 6 compiler,就是使用這個編譯器編譯的。

VC9是什麼?

VC9就是the Visual Studio 2008 compiler,就是用微軟的VS編輯器編譯的。

那我們如何選擇下載下傳哪個版本的PHP呢?

如果你是在windows下使用Apache+PHP的,請選擇VC6版本;

如果你是在windows下使用IIS+PHP的,請選擇VC9版本;

那Non Thread Safe是什麼?

Non Thread Safe就是非線程安全;

Thread Safe 是什麼?

Non Thread Safe 是線程安全;

FastCGI執行方式是以單一線程來執行操作,是以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,是以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執行 PHP ,都建議下載下傳、執行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)是以我們選擇NO-Thread Safe 版本的PHP來使用。

而線程安全檢查正是為ISAPI方式的PHP準備的,因為有許多php子產品都不是線程安全的,是以需要使用Thread Safe的PHP。

下載下傳安裝,我安裝預設路徑了:

IIS配置PHP環境(快速最新版)

記得選中第三項:IIS FASTCGI

IIS配置PHP環境(快速最新版)

如果沒有安裝IIS FASTCGI的 下一步會提示沒有安裝的,下載下傳安裝就行了

FastCGI  for IIS 6  7   ​​http://www.iis.net/expand/fastcgi​​

IIS配置PHP環境(快速最新版)
IIS配置PHP環境(快速最新版)

安裝好後,繼續下一步,我按照預設了:

IIS配置PHP環境(快速最新版)

安裝完畢後,就是配置了。

這種配置有兩種方法,我用cmd配置,一條指令就行了。

轉到剛才安裝CGI的目錄下: 

>cd C:\WINDOWS\system32\inetsrv

>cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\Program Files\PHP\php-cgi.exe"

注意:path:"xxxx\php-cgi.exe” 是你安裝php的目錄

> cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000

> cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

IIS配置PHP環境(快速最新版)

ok!完畢!

測試下:

建立一個.php檔案,裡面

<?php

phpinfo();

?>

儲存!

運作,出現下面頁面,說明配置成功了!

IIS配置PHP環境(快速最新版)

這樣的方法 IIS就不用怎麼配置,他都會自動配置好了!​​微軟提供的配置更加詳細​​ !

如果按上面的教程配置好後,運作php測試頁面,出現了500錯誤。

那就設定php.ini中的date.timezone項。

我這裡設定成上海時區:date.timezone = Asia/beijing

設定完後就一切正常了!