這里用的服務(wù)器操作系統(tǒng)是x86版本的,所以以下程序均為在Windows x86環(huán)境下使用的版本。 現(xiàn)在官方已經(jīng)不再支持用iSAPI的方式來安裝 PHP了。
首先我們要下載兩個(gè)工具,F(xiàn)astCGI和php
1,FastCGI
fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)
下載:http://www.iis.net/extensions/FastCG I,選擇: x86
2,PHP 推薦PHP 5.2.17的ZIP壓縮包版本
http://windows.php.net/downloads/releases/php-5.2.17-nts-Win32-VC6-x86.zip
http://windows.php.net/download/ 這里可以下載到 PHP 5.3 (5.3.7)
在官方網(wǎng)頁上有說明:
Which version do I choose? 我要安裝什么版本
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
If you are using PHP with IIS you should use the VC9 versions of PHP
VC6 Versions are compiled with the legacy Visual Studio 6 compiler
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed
Do NOT use VC9 version with apache.org binaries
VC9 versions of Apache can be fetched at Apache Lounge. We use their binaries to build the Apache SAPIs.
這個(gè)意思就是說如果是 Apache 就安裝 VC6 的版本 如果是IIS就推薦安裝 VC9的版本。
文件下載完成后,對文件進(jìn)行一次病毒掃描,以防意外,畢竟小心使得萬年船,服務(wù)器不是別的,如果中毒那損失可就大了。
不建議將php裝在C盤,因?yàn)槲沂怯玫?a href="http://www.innovatechautomation.com/s/VmareWorkstation/" target="_blank">虛擬機(jī)做測試,所以我將PHP裝在了c盤,如果你的安裝路徑不同,請自行修改以下提及到的對應(yīng)路徑。
第二步、安裝PHP
一、安裝 FastCGI For IIS6
將下載得到的fcgisetup32.msi,雙擊運(yùn)行進(jìn)行安裝。
安裝后在 C:\WINDOWS\system32\inetsrv 目錄下產(chǎn)生了五個(gè)文件。
同時(shí)在 IIS 的 “Web 服務(wù)擴(kuò)展”里多了 FastCGI Handler。
二、安裝PHP
據(jù)說由于PHP5.3的全新特效及改進(jìn),原有的isapi方式解析PHP腳本已經(jīng)不被支持,PHP從5.3.0以后的版本開始使用微軟的fastcgi模式,經(jīng)過自己的安裝,發(fā)現(xiàn)5.2也是這個(gè)樣子,fastcgi模式這是一個(gè)更先進(jìn)的方式,運(yùn)行速度更快,更穩(wěn)定!新版本的PHP5.2通過以往老方法已經(jīng)不能在IIS上安裝了,下載IIS下的PHP,解壓到所需目錄,該目錄需要給予user讀取運(yùn)行權(quán)限,
下載 .zip 格式的版本,解壓縮下載的 php-5.2.17-nts-Win32-VC6-x86.zip,并將其復(fù)制到c:\PHP目錄(你可以根據(jù)自己的意愿解壓到別的目錄。),并給 IIS 啟動(dòng)帳戶組或用戶賦予讀取和運(yùn)行權(quán)限。
c:\php目錄下的所有dll文件復(fù)制到C:\windows\system32下(Windows2000系統(tǒng)為C:\winnt\system32,下同),如果已經(jīng)有若干同名文件存在,覆蓋即可。
注冊 PHP 到 FastCGI
打開 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
; This is the configuration file for the FastCGI handler for IIS 6.0.
; The FastCGI handler will look for this file in the same directory as
; fcgiext.dll. By default, the FastCGI installer will place this file into
; the %windir%\system32\inetsrv directory.
我個(gè)人的理解是,只要“Web 服務(wù)擴(kuò)展”里的 FastCGI Handler 為允許時(shí),在加載 fcgiext.dll 時(shí),會(huì)讀取 fcgiext.ini 配置文件的內(nèi)容,根據(jù)里面的配置為每個(gè)網(wǎng)站提供映射。
在 [Types] 下添加以下配置:
[Types]
php=PHP
[PHP]
ExePath=c:\PHP\php-cgi.exe
這里要用:“\”不能用“/”,“php”表示擴(kuò)展名,“PHP”是配置節(jié)名稱,以“[PHP]”定義。 (選你自己的安裝的目錄,下同。)
c:\PHP目錄下的php.ini-development復(fù)制一份,更名為php.ini(還是在當(dāng)前目錄中),再用文本編輯軟件打開這個(gè)php.ini(建議使用Notepad2、EditPlus、UltraEdit等各種支持語法高亮顯示的文本編輯軟件)。
查找:extension_dir = “./”
將其路徑知道你的PHP目錄下的擴(kuò)展功能目錄中,這里PHP5對應(yīng)修改為extension_dir = “c:/PHP/ext” 。
再在d盤下建立文件夾,并命名為upload_tmp
查找 ;upload_tmp_dir =
將;upload_tmp_dir =該行的注釋符,即前面的分號(hào)”;”去掉,使該行在php.ini文檔中起作用。
upload_tmp_dir是用來定義上傳文件存放的臨時(shí)路徑,在這里你還可以修改并給其定義一個(gè)決定路徑,需要注意的是,這里設(shè)置的目錄必須有讀、寫權(quán)限。
這里我設(shè)置為upload_tmp_dir = “d:/upload_tmp/” (這里就是我前面建立的文件夾)
找到:fastcgi.impersonate = 1;把前面的;去掉,
fastcgi.impersonate = 1
找到:short_open_tag= Off;
short_open_tag= On
搜索 ; Windows Extensions,定位到php.ini文件的extension,將下面列出的常用擴(kuò)展前面的分號(hào)注釋符去掉:
; extension=php_curl.dll
; extension=php_gd2.dll
; extension=php_ldap.dll
; extension=php_mbstring.dll
; extension=php_exif.dll
; extension=php_mysql.dll
; extension=php_mysqli.dll
; extension=php_sockets.dll
; extension=php_xmlrpc.dll
特別提示:Exif擴(kuò)展是用來顯示圖片的exif信息的,因該擴(kuò)展需要mbstring支持,所以將extension=php_exif.dll這一行移動(dòng)到extension=php_mbstring.dll一行的下面。
注意最后一個(gè)php_zip.dll這個(gè)在我下載下來的php5.3.0的ext內(nèi)是不存在的,所以如果開啟會(huì)報(bào)錯(cuò)誤,如果實(shí)在需要這個(gè)DLL,可以從 PHP5.2中拷貝過去(php5.2.X可以,php5.3.0不行)extension=php_ming.dllphp5.3.0的ext內(nèi)是也不存在
;date.timezone =
去掉前面的分號(hào)注釋符,這里將其設(shè)置為 date.timezone = Asia/Shanghai
找到下面
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; date.timezone =
更改為并去除前面的“;”:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
如果不改以上的date.timezone可能打開網(wǎng)頁會(huì)提示500錯(cuò)誤
關(guān)于時(shí)區(qū)設(shè)定的說明:
從php5.1.0開始,php.ini里加入了date.timezone這個(gè)選項(xiàng),默認(rèn)情況下是關(guān)閉的,也就是顯示的時(shí)間(無論用什么php命令)都是格林威治標(biāo)準(zhǔn)時(shí)間,和我們的時(shí)間(北京時(shí)間)差了正好8個(gè)小時(shí),有以下2種方法可以恢復(fù)正常的時(shí)間。
1、如果要用5.1以上版本,而且不修改php.ini,則需要在關(guān)于時(shí)間的初始化的語句的上面加上date_default_timezone_set (XXX),或者使用date(‘Y-m-d G:i:T’, strtotime(‘+8HOUR’) )來獲取日期時(shí)間;
2、一勞永逸,僅限能修改php.ini。打開php.ini把date.timezone前面的分號(hào)去掉,在=后面加XXX,重啟http服務(wù)(如apache2或iis等)即可。
關(guān)于XXX,大陸內(nèi)地可用的值是:Asia/Chongqing、Asia/Shanghai、Asia/Urumqi(依次為重慶,上海,烏魯木齊),港臺(tái)地區(qū)可用:Asia/Macao、Asia/Hong_Kong、Asia/Taipei(依次為澳門,香港,臺(tái)北),還有新加坡:Asia /Singapore,以上沒有北京,不過接著往下看,其他可用的值是:Etc/GMT-8,Singapore ,Hongkong,PRC(中華人民共和國)。
查找:;session.save_path = “/tmp”
將前面的分號(hào)注釋符去掉,這里將其設(shè)置為session.save_path = “D:/upload_tmp” (這里就是我前面建立的文件夾)
如果你有遇到無法上傳較大文件或者運(yùn)行某些程序經(jīng)常超時(shí),那么可以修改以下內(nèi)容來調(diào)整相關(guān)限額:
max_execution_time = 30 ; 這個(gè)是每個(gè)腳本運(yùn)行的最長時(shí)間,根據(jù)你的需求更改數(shù)值,單位秒
max_input_time = 60 ; 這是每個(gè)腳本可以消耗的時(shí)間,根據(jù)你的需求更改數(shù)值,單位也是秒
memory_limit = 128M ; 這個(gè)是腳本運(yùn)行最大消耗的內(nèi)存,根據(jù)你的需求更改數(shù)值,256M。
post_max_size =10M
表單提交最大數(shù)據(jù)為10M.此項(xiàng)不是限制上傳單個(gè)文件的大小,而是針對整個(gè)表單的提交數(shù)據(jù)進(jìn)行限制的.
限制范圍包括表單提交的所有內(nèi)容.例如:發(fā)表貼子時(shí),貼子標(biāo)題,內(nèi)容,附件等…根據(jù)你的需求更改數(shù)值,M是單位:兆。
大約第883行,
upload_max_filesize = 2M ;
上載文件的最大許可大小 ,根據(jù)你的需求更改數(shù)值,M是單位:兆。
在論壇發(fā)表貼子時(shí),您post_max_size 設(shè)為10M,而此項(xiàng)設(shè)成了2M,那么您只能上傳最大為2M的附件,且可以同時(shí)上傳5個(gè).
配置網(wǎng)站
打開IIS管理器,網(wǎng)站上點(diǎn)右鍵-屬性-主目錄-配置-添加,
可執(zhí)行文件路徑:C:\WINDOWS\system32\inetsrv\fcgiext.dll
擴(kuò)展名PHP
先運(yùn)行c:\PHP\php-cgi.exe如果能進(jìn)入命令窗口并只有光標(biāo),說明FastCGI能正常調(diào)用php-cgi,否則會(huì)提示錯(cuò)誤,這點(diǎn)對使用微軟的fastcgi模式很重要。
寫個(gè) php 測試下吧
修改完在IIS上或者命令提示符運(yùn)行iisreset命令重啟IIS服務(wù),這步很重要!
測試是否安裝成功!
建立一個(gè)網(wǎng)站,phpinfo.php文件內(nèi)容為:
文件:phpinfo.php(內(nèi)容如下)
然后訪問這個(gè)文件,如果看到php詳細(xì)信息頁面,就說明你的服務(wù)器可以跑 php 了。
(2)mysql配置:
將mysql安裝目錄下bin目錄中的 libmysql.dll復(fù)制到"c:\windows\system32"目錄下;
將php-5.1.17\ext目錄下的
php_curl.dll
php_gd2.dll
php_ldap.dll
php_mbstring.dll
php_exif.dll
php_mysql.dll
php_mysqli.dll
php_sockets.dll
php_xmlrpc.dll
復(fù)制到“C:\WINDOWS\system32”目錄下。
如果安裝成功則可以進(jìn)行下測試,在程序中啟動(dòng)mysql命令行工具,輸入密碼,提示登錄成功,即可。