- 注册时间
- 2009-12-25
- 最后登录
- 2021-7-10
- 在线时间
- 3302 小时
- 阅读权限
- 200
- 积分
- 10
- 帖子
- 13416
- 精华
- 1
- UID
- 2036
  
|
PHP5.3.0篇:IIS6上安装MySQL5.1.38,PHP5.3,Zend3.3,phpMyAdmin3.2.2的完整方法
$ h2 C$ [- J% s3 x3 S$ l在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
! U* q$ f0 w# b x1 ZPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0
4 B0 A' O+ m+ h9 r: x9 B2 O( Y! J微软已经和PHP社区共同努力了一年之久,他们终于研发出能让IIS更快地解析PHP的方法,用户们甚至不需要做基准测试就可以明显感觉到PHP解析速度加快.早在2006年,微软就和Zend等厂商一起研发Windows Server下的优化工作,IIS产品组已经公布了IIS6和7的FastCGI扩展,它能让PHP执行效率更高. PHP一直以来是IIS的尴尬,用PHP扩展的速度跟不上其它服务端(甚至还有一些致命问题例如在某内存地址报错),而PHP又比ASP.net普及得多,因此微软需要在IIS+PHP上突破市场. 微软去年底发布了ii6的fastcgi模块,可以免费下载,使用IIS6的您不妨在您的测试环境上试一下,没准会有惊喜哦! 今天将服务器上的php支持改成了fastcgi,目前运行稳定.fastcgi的iis模块可以让流行的应用框架在iis上支持fastcgi协议以提供高性能和可用性的访问服务,fastcgi面向现有的网络服务器提供高性能的cgi替代标准。具体php安装方法我记录下来,其中包括出现的错误.
7 s! e9 ^! F7 C& e1.下载 FastCGI For IIS6
( D- Q+ w" O+ x, {$ {4 tfcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)1 W- O t8 `9 `0 x* f ]
下载:http://www.iis.net/extensions/FastCGI,选择: x86
, i& i# y4 z& Q- M% y4 h4 {0 G+ L; b ^8 L9 L; ^, o2 K
/ v8 N0 w5 z$ M2 n6 j' v; U
; q" J( X. y, v* S. O/ i或者直接下载:http://go.microsoft.com/?linkid=9655696
8 y, ^) o) u4 `: _ + C( g0 f2 Z" W5 e- I# L
下载之后,双击运行进行安装。
! }$ X) c7 o$ D$ z8 K(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )8 Q' j$ c# `" p( C2 M
" ?4 a7 r' u! k. P6 c: R
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:
9 B) g' [. Z8 a; }3 w
- ^' l% C# T1 R + P2 c% K( S& s3 l
' W$ Z X* J% p" S3 S1 C# J
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。; m# x) p" K( e; K, o- Z% V
* _/ t [& a$ B- l6 `
) |6 Y! Y. r' p/ A4 y& j
) g5 ?! P, l4 x$ K2.下载 PHP5.3.0 Windows 版9 q; m+ K7 m( K! e6 |# N
由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定! \! q$ z0 H4 J' b) y1 [) M
新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,
q0 b9 C% j3 @. `7 r选择:PHP 5.3 (5.3.0)$ I. {3 `* w2 o6 M! e
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
@( w, J& `5 b, y2 m/ f4 fsha1: f049c806744855e4420844d47e051949fcf06661
/ e4 q5 V" A, A8 c" R下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:
: X+ ?* _$ j0 B7 e6 H7 o
3 I1 ^% e/ d% c$ f \5 E' j
1 Q# F& m) B5 m" W( H% R 3. 注册 PHP 到 FastCGI
* q- g9 h* w& F+ R }; X9 K* U$ O1 M) f3 ]7 b& @
打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
7 U+ \6 a$ e% o: z o7 B; This is the configuration file for the FastCGI handler for IIS 6.0.
# r, }& x! R8 s x1 G8 Y8 {; The FastCGI handler will look for this file in the same directory as
1 x& P p) D1 r4 U& u; fcgiext.dll. By default, the FastCGI installer will place this file into3 I7 L2 D* O) U- P
; the %windir%\system32\inetsrv directory.
3 P- }! Y/ x7 o- A0 ?. W2 ~& f5 }# `0 p# q% E9 v' T6 }* p: B
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 ) c$ M& p2 A9 B7 ]/ L3 G
6 E) v/ s. Y$ U* n" t# c) t; o在 [Types] 下添加以下配置: 9 S% h# n) F& h
[Types]
, w3 o3 V4 O% }+ F" E* g5 Q8 g- l& S1 Q# S" [8 L4 x3 V, @
php=PHP
* O) @! `! n! O6 M. H5 P[PHP]
: F0 O: K3 A) P( T3 Y0 _. yExePath=X:\Server_Core\PHP\php-cgi.exe
; c+ U8 A% b% p$ C- n% d这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)8 F$ A6 M- |- F6 R
% s6 m/ q& a6 F. y
4. 配置 php.ini J3 m1 e2 x% d0 F
将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini
1 k3 j& C. k/ e找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面2 E3 Q8 W( \ k( k9 p5 f
[Date]" K n; P, O. ~$ e
; Defines the default timezone used by the date functions
' P& v$ N3 t& j0 ^+ @. x( J; http://php.net/date.timezone( e% F+ B* o. q' y- c& f6 Z) ^0 B9 d
; date.timezone =$ W, [0 m" ^+ n9 Q2 R; E
更改为并去除前面的“;”:
, J5 j( |( `, f9 D) y d7 e[Date]
! d- Z6 d9 ^- W; Defines the default timezone used by the date functions0 E; `+ N; ` ]* h3 M C
; http://php.net/date.timezone) V3 q/ |( Y4 s: w" |$ t; A; V; J
date.timezone = Asia/Shanghai
- V: n1 D8 Z# Q3 n如果不改以上的date.timezone可能打开网页会提示500错误
3 Y4 k/ q4 y) F2 k找到
$ A! h* [: O2 T s; On windows:/ ?5 j; r9 {5 A% k# Y. W
; extension_dir = "ext"/ v: ]7 G* v; O+ v
改为
5 [& @' {$ |$ d, @; L0 @" c! x0 h6 |; On windows:
( j2 f% f: L+ c& [, O+ D$ A9 Wextension_dir = "X:\Server_Core\PHP\ext" % B9 @: |0 U* d r i
/ n' O$ R! }7 l% ?) [
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1
8 s# R1 ]2 I) d3 e如下图:, j: s6 J5 c7 g2 o5 W' W% Y
$ F* |; p8 z" l7 j# v) a
0 Q) J7 f$ h% e6 ~1 N6 i
找到:short_open_tag= Off;改为
' ~: y8 l* e' N short_open_tag= On' u, s( b( r- `$ j) m
0 C2 o, C) C h+ T* x# K6 _0 T至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是* k6 r" o9 n2 }5 ~, A" M( p/ I
;extension=php_bz2.dll
1 {% L" a. u/ f- u' R0 j;extension=php_curl.dll
& P; i. c% x9 N8 J* E9 y;extension=php_dba.dll
: q/ m+ s9 H& W7 C! U! R# L5 r; Gextension=php_mbstring.dll# c* z0 t5 p- j/ I( y" {
extension=php_exif.dll8 Q, W; p4 y' s
;extension=php_fileinfo.dll
8 G" q( K3 w) [$ r/ {9 oextension=php_gd2.dll+ U+ C0 c4 K0 E/ u [
;extension=php_gettext.dll, u7 v5 f3 t! @* R' H: c
;extension=php_gmp.dll$ \, \9 L: M* \' ?1 c/ q
;extension=php_intl.dll
7 x% w2 {5 m" V# J. q2 }: I;extension=php_imap.dll
5 A. v# d `1 |;extension=php_interbase.dll
5 b- N4 W1 ?1 Y( S- ~; \( \extension=php_ldap.dll
9 |8 _% @ n4 [. Q- Q;extension=php_ming.dll
& U' C3 }0 c6 m, j5 P;extension=php_mssql.dll
+ m4 v& y1 i' Z2 T" j; ^) `3 }extension=php_mysql.dll( A" ~$ Y, n, }! _0 z
extension=php_mysqli.dll* ^& S$ p/ C2 p1 ~: J! H
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client1 A. q) e: d" G7 y
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
" b8 s3 {0 a0 @4 a1 ~* U1 a;extension=php_openssl.dll1 [+ f- r! Y7 b' f$ m
;extension=php_pdo_firebird.dll
' e+ T- x5 O; N, k$ l0 K;extension=php_pdo_mssql.dll% o6 r% S9 k, ]! p/ I
;extension=php_pdo_mysql.dll
4 w0 l2 n/ B6 g5 E5 j8 Y;extension=php_pdo_oci.dll
! T4 o3 a- q% U;extension=php_pdo_odbc.dll, U& o; _9 x6 s/ Y3 C) S! F
;extension=php_pdo_pgsql.dll) m+ M4 ~% ^3 L" U
;extension=php_pdo_sqlite.dll
* N4 @) N/ D) ~/ k;extension=php_pgsql.dll0 }4 S+ K* S+ s, s2 ~0 \9 d
;extension=php_phar.dll2 C% s; f& J( I7 M0 @
;extension=php_pspell.dll
) m8 Z# p, v; L+ Q3 D;extension=php_shmop.dll
: D# T8 ^; i7 p2 f* j$ {8 y;extension=php_snmp.dll
7 Z9 }" I5 b! h$ I;extension=php_soap.dll
/ H% B8 ~1 f5 `" h" d' i;extension=php_sockets.dll
, a# a1 A2 F" b;extension=php_sqlite.dll
. G2 e. R0 B3 U3 ~5 p" I+ O;extension=php_sqlite3.dll
/ c/ ]- p6 K$ s( Y0 L; E;extension=php_sybase_ct.dll7 \4 j6 X& x: Y( j: i
;extension=php_tidy.dll
V& q; G+ y7 m% R/ ^;extension=php_xmlrpc.dll% p' d# w9 x9 h3 F- Y# R
;extension=php_xsl.dll
5 [2 I6 B: `$ i) d# {7 B6 X;extension=php_zip.dll0 ~6 @: C" z8 l \# Y
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)
: m0 S4 w4 ?/ I保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!! D# |. \* R! U5 \) E Q5 s8 E: ]/ V
0 n9 b, b9 b, f8 H: i; s; P0 J5 O* Z+ R1 N
5. 配置网站 1 Y2 c/ N* ]* \: M" N: K2 D
5 H9 }0 e9 X" y打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图' A4 j E+ ^, m
- W6 O9 \- e7 c
; b+ k, r' O7 J# c, b8 p4 y9 O
! l: G* b) M& @9 V! Q7 n% H- I" s' X6 f( p; }( i* ~, x
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
! g+ S- r+ h+ s2 o& a
: T2 k" N/ t6 g. P3 F1 R6 `6. 写个 php 测试下吧 f& O7 S7 y4 I0 D, U' e9 d3 X
1 J4 X( [+ K. k: C8 b2 S. w
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!3 N- Y" L7 ?1 }
8 t6 Y5 K' e2 n% O9 j0 o D3 L% `/ S% Y; A+ X/ H
1 J; }+ i9 j- `! y" z6 f, x- g2 }
测试是否安装成功!
; L U: w; |3 t( ~$ M建立一个网站,phpinfo.php文件内容为:
) i3 Y( b t7 H3 T y文件:phpinfo.php
( }: Y3 d9 c, X6 V% T<?php
8 x5 t+ H9 [; O$ \phpinfo();
2 g; C' m8 [- t?> ; T- ?2 C1 |. R/ z( n! ~
+ _, H# G; J3 \. |+ l+ [
看到类似以下效果说明你的服务器可以跑 php 了。9 v% y! j' h6 g" s2 Y

" t7 x1 C4 q% B5 q! ^! g安装过程出现小插曲,如果运行测试文件出现如下提示:
9 b* v1 b4 Y1 M6 O; T先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:/ u! H. y; b) Y1 c/ w
错误1,4 M( D# U2 F" z+ X! N
fastcgi error5 m7 R) @$ i! q/ d9 v
the fastcgi handler was unable to process the request. 2 K9 ?* N1 b( g8 y) H ~- a
--------------------------------------------------------------------------------2 a# v6 J! t) u6 P3 Z0 N; {
error details:2 ` |( \8 k2 z3 ?. t& @- q6 h- ]/ L; V
error number: 5 (0x80070005).
# b9 x' x! u4 c R$ ierror description: 拒绝访问。 5 p3 d9 E# Q1 d7 W+ B) J- u
http error 500 - server error.1 V8 F. E O. q+ h: j+ {
internet information services (iis)
. B8 m2 r( d& \' j$ w* x这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.
; q8 @7 O2 |4 D/ F5 H+ j5 C' W; K
1 {$ ]% [. Q3 W1 [错误2,
7 {1 s" K7 O4 m0 \, }( g- IFastCGI Error
3 o- J6 Q5 O1 G& }/ @0 n# BThe FastCGI Handler was unable to process the request.
3 K# f+ \8 g# a( U: R2 t0 d/ t. z--------------------------------------------------------------------------------
! r' @: B& U& WError Details:8 k J# W) l! K& ?
Could not find entry for "php" on site 1960240566 in [Types] section.
" B0 d8 r& m3 c `4 p& I) }* XError Number: 1413 (0x80070585).
6 \1 @# d: f. \5 I7 f& A; LError Description: ?TD§?÷òy?£ ! D) D2 \/ B$ x% ^! a) }# i$ H
HTTP Error 500 - Server Error./ i9 H0 J' B- K9 y/ ^; ?4 d
Internet Information Services (IIS) , I. R9 Y# r, b+ a$ |& Q9 d9 }
4 K7 H% w4 G7 ^" b
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
8 `% J4 n6 C+ R$ g错误3, h: l8 v4 X$ @$ R% u
----------
; d+ q4 x* M% tFastCGI Error
9 j, |; D6 L$ g- h5 X* e2 ^+ \; _5 ~The FastCGI Handler was unable to process the request. 6 B% Y" [3 g- J1 n( }* X
Error Details:/ p# ~. G0 N: p7 \3 e) w0 M# E, r' d
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.5 h9 e+ R3 x$ J2 R
Internet Information Services (IIS)0 r3 X- W5 y* W6 Y' K" a# `
--------
* [8 d4 c. i& ?( ^+ i/ O8 D4 r8 q8 R我的PHP目录在C盘 5 W1 j) T4 t3 E8 A3 {9 ~1 s
当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
& ]% S5 W0 N/ S结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
5 E, `1 ^' L F+ \; f把 C:\php\php.ini 删除,搞定!
4 V' V$ ~! Q. F' B随后用FakeCGI调试工具才搞定原因../ n. T) r3 l/ Q: I
感谢FakeCGI,痛斥我的坏习惯!!!
. U Z9 I3 m: y" A" @3 g3 R8 h. h- G
. Q7 M) _/ G0 S$ D# G
7 t$ I0 ]% c1 m9 [0 M0 s( l! l& U0 v7 x1 ^+ H3 u
, b: g/ Z G# U; S
PHP5.3.0特除配置8 J# r* M* g% x9 m3 a% j
一,如何正确调整上传附件大小限制?: J0 F+ n6 l* o4 r7 h6 U+ |$ B
修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:
! D1 c4 P* c5 d7 h; f& m, j1. post_max_size =10M 0 J1 v l5 F. g
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.0 [ P9 S. e# |2 k
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...: I7 U& l: ^/ H4 d; ^6 F! t; S5 b' m
2.file_uploads = On
1 S0 ~9 b0 `, A% S: W% a- N是否允许上传文件,如果为OFF您将不能上传文件.
: M8 k$ ?( C% W! q4 Q3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\"
5 U& j! b0 a8 r/ C* \& A$ ~上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.
0 p% V+ W" B% m4.upload_max_filesize =2M 5 e- N! `+ K: q# G2 C' y- g& x3 {
最大上传文件大小,此项针对上传文件时单个文件的大小.
% p8 z) ^* x. C \- l* U1 X与post_max_size之间的关系:/ [7 T' l& M7 n% W. y/ b* ]/ c/ `
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.0 P' i; i3 J" Q1 b
修改之后一定要重启 Web 服务。
* h) C2 [0 J0 c6 K* }7 S: ?注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.% [! e+ q0 g8 R5 X; V) Y7 `
二,EXIF信息服务器配置说明:$ Z4 T- _1 }; }
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
T' f8 _5 E( [( B2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前) G) `/ f( K2 k! u
3.找到[exif]段,把下面语句的分号去掉。
; z$ U+ Q2 |1 K v5 R$ W1 i) p;exif.encode_unicode = ISO-8859-154 I( G- b5 U2 M1 ~
;exif.decode_unicode_motorola = UCS-2BE
" l" P/ E8 e! d1 Z `$ D& s0 F; x;exif.decode_unicode_intel = UCS-2LE
% Q; r( n- L$ u5 U; f7 b' i& w2 y;exif.encode_jis =
, P5 |/ \8 U* T8 E ~5 q;exif.decode_jis_motorola = JIS
. d/ q* F) X Z3 Y/ };exif.decode_jis_intel = JIS
! }$ X& g$ R9 G* {/ fPS:% B' ~" B# E" M% k' A
安装版PHP的方法: 
. o9 u: w4 c G4 `2 o点击NEXT7 A T! D# I4 [5 O
$ B. q W- g- d7 D) v3 A
打上勾同意
) O' p' u: u% s# {: R * \# F% f# m3 n: @# t( T
出现安装路径,默认路径,点击"Next"# Q* l+ a5 X+ v( q, s

4 d+ {' k5 t- H. x6 m在这里选择:IIS FastCGI,再点击Next
& i6 ? \2 I4 s! K: V" {5 z ; n: L! s# u) U! k! L% `
然后在模块里选上
5 J& o) \* u# e, P$ {mysql. s9 s: ^* i4 X4 |- u/ C5 l% o
GD2. @ N' a# C1 u+ B/ n
Multibyte String* w* U$ [4 p% o
mcrypt
7 p3 k( G3 G3 v) c之后点击"Next",安装成功!
2 q% R+ Q Y2 S3 r4 C$ r* [) e! i" L9 v _% C" g, _
& ]- g7 t" d% t/ \5 a8 _
2 [" x3 l$ p% S% B0 M% u3 b待续: |
|