iis6+php5.2
張貼日期:2012/10/9 上午 08:06:29
server2003的iis6上面架設php並處理可以連線mssql2005/2008
以下動作是iis6已經安裝好的情況下做的.請先確定iis6已經安裝完成.
此方法不直接適用server2008的iis7
iis是利用fastcgi來運作php.
FastCGI 執行方式是以單一線程來執行操作,所以不需要進行php線程的安全檢查,除去線程安全檢查的防護反而可以提高php執行效率
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.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();
?>