iis6+php5.2

張貼日期:2012/10/9 上午 08:06:29

server2003的iis6上面架設php並處理可以連線mssql2005/2008

以下動作是iis6已經安裝好的情況下做的.請先確定iis6已經安裝完成.

此方法不直接適用server2008的iis7

iis是利用fastcgi來運作php.

FastCGI 執行方式是以單一線程來執行操作,所以不需要進行php線程的安全檢查,除去線程安全檢查的防護反而可以提高php執行效率

直接下載fastcgi 1.5 32bit版

或是到fastcgi網站去下載其他版本

php目前分成5.2跟5.3系列,從5.3開始有很多新的特性.也淘汰很多舊的特性.所以這邊建議選擇安裝舊的5.2系列

php還有分vc6跟vc9的編譯版本.選擇vc6即可.

php5.2(無線程安全/安裝版)下載PHP 5.2.13 Non-thread-safe installer

1.裝fastcgi....一直下一步就ok了

2.檢查iis的 "管理\網頁服務延伸" 裡面,fastcgi是否存在跟允許運作。

3.安裝 php5.2...選完目錄一直下一步就好.

3.1安裝新的微軟資料庫驅動for php

這個可以讓php讀取sql2000以上的資料.支援utf-8.下載位置:

http://www.microsoft.com/downloads/details.aspx?familyid=DF4D9CC9-459C-4D75-A503-AE3FCEB85860&displaylang=en

介紹頁

http://www.imusm.net/wp/archives/1230

下載之後是自動解壓執行檔.執行後選一個空目錄放.

接著.從解壓的目錄裡面挑出我們要的版本:5.2/ 無線程安全/vc6

所以是這2個檔案

php_sqlsrv_52_nts.dll

php_pdo_sqlsrv_52_nts.dll

將這2個檔案放到php的ext目錄.

然後在步驟5中

註解或是去掉這2行

;extension=php_mssql.dll

;extension=php_pdo_mssql.dll

加入這2行

extension=php_sqlsrv_52_nts.dll

extension=php_pdo_sqlsrv_52_nts.dll

4.裝好後檢查C:\WINDOWS\system32\inetsrv\fcgiext.ini

如沒有以下內容請貼上去,注意Path依照當時安裝位置,

[Types]

php=PHP

[PHP]

ExePath=C:\php5\php-cgi.exe

InstanceMaxRequests=1000

ActivityTimeout=300

RequestTimeout=300

EnvironmentVars=PHP_FCGI_MAX_REQUESTS:1000,PHPRC:C:\php5\

此檔案編碼必須是utf-8.否則會異常

5.檢查C:\WINDOWS\php.ini

檢查以下項目正確性.注意路徑要變更為安裝的目錄

注意extension=php_mbstring.dll必須在所有extension=的前面.避免後面一些extension需要php_mbstring.dll找不到

output_buffering = 1024

output_handler =ob_gzhandler

max_execution_time = 180

max_input_time = 60

memory_limit = 64M

display_errors = Off

display_startup_errors = Off

log_errors = On

log_errors_max_len = 1024

html_errors = Off

register_globals = Off

register_long_arrays = Off

register_argc_argv = Off

auto_globals_jit = On

file_uploads = On

upload_max_filesize = 200M

include_path = ".;C:\Inetpub\wwwroot"

extension_dir = "C:\PHP5\ext"

date.timezone = "Asia/Taipei"

cgi.force_redirect = 0

cgi.fix_pathinfo=1

fastcgi.impersonate = 1;

default_charset = "utf-8"

extension=php_mbstring.dll

extension=php_bz2.dll

extension=php_curl.dll

extension=php_dba.dll

extension=php_dbase.dll

extension=php_exif.dll

extension=php_fdf.dll

extension=php_gd2.dll

extension=php_gettext.dll

extension=php_gmp.dll

;extension=php_ifx.dll

extension=php_imap.dll

;extension=php_interbase.dll

extension=php_ldap.dll

extension=php_mcrypt.dll

extension=php_mhash.dll

extension=php_mime_magic.dll

extension=php_ming.dll

extension=php_sqlsrv_52_nts.dll

extension=php_pdo_sqlsrv_52_nts.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_openssl.dll

extension=php_pdo.dll

extension=php_pdo_mysql.dll

extension=php_pdo_odbc.dll

extension=php_pdo_pgsql.dll

extension=php_pdo_sqlite.dll

extension=php_pgsql.dll

extension=php_pspell.dll

extension=php_shmop.dll

extension=php_snmp.dll

extension=php_soap.dll

extension=php_sockets.dll

extension=php_sqlite.dll

extension=php_tidy.dll

extension=php_xmlrpc.dll

extension=php_xsl.dll

extension=php_zip.dll

[MSSQL]

mssql.textlimit = 2147483647

mssql.textsize = 2147483647

6.檢查php目錄內的ntwdblib.dll版本是 2000.80.2039.0

7.將php目錄內的*.dll拷貝到C:\WINDOWS\system32

8.php目錄/ C:\Inetpub\wwwroot 目錄/ C:\WINDOWS\system32\inetsrv目錄必須要有IIS_WPG/IUSR_*/NETWORK SERVICE這3個的讀取/執行/清單權限

9.檢查 "管理" 裡面的 "預設的網站\內容\主目錄\設定"裡面,是否有.php的存在,如沒有請加入

路徑 C:\WINDOWS\system32\inetsrv\fcgiext.dll

副檔名 .php

指令動詞 GET,HEAD,POST

10.啟動iis並且檢查是否可運作一個php頁面

網站隨意目錄放置一個 phpinfo.php

<?php

phpinfo();

?>