- 注册时间
- 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的完整方法; J. ~7 P% p! o' _
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
7 k! F6 ~! |) z5 A8 I; EPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0, ?& n4 Q) o3 F) Y1 K
微软已经和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安装方法我记录下来,其中包括出现的错误.9 y; B, O3 g6 d% V. F" i' Z* u
1.下载 FastCGI For IIS6
, k; i! T. d1 k+ X7 \: D) nfcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)# U2 J, Z) q5 f0 k$ R9 W
下载:http://www.iis.net/extensions/FastCGI,选择: x86" o4 w2 X$ U% l9 \7 d8 p8 {
8 r$ O7 a3 T. v3 m v( x
9 J3 U: Y1 l" d Z; u# R# C
7 z" V/ E- _+ L2 Y& ]或者直接下载:http://go.microsoft.com/?linkid=9655696
# ^8 X0 r& @6 ?" d! n
, Q( m, f- l+ Z2 S l4 C/ p/ f0 s下载之后,双击运行进行安装。
8 k5 r( Z" J, v1 i4 O(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx ); Q+ Z2 J' G, L
/ f% I" ?0 [1 K. m安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:
1 X- Z- d. }- Q6 p# v
: A- S8 q: w! q0 J # P2 G a6 Y5 |. A" P" v$ B) G
7 T5 w( F9 w6 _' \
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。5 _. _7 i2 M3 \1 r
- e- d( {3 }3 C

8 V0 \" n4 Z0 L
+ o8 z$ ^6 g" u+ K( P- a2.下载 PHP5.3.0 Windows 版
7 @* \: b- Q1 U( @3 n+ ^6 Y9 b由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!
2 Z; d0 z( \3 f4 b) H z) [新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,
9 T+ h$ j8 ]- n7 u5 K3 W选择:PHP 5.3 (5.3.0)% `- n% D! W. w1 G9 u
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]- `" X+ o* C: o8 I' G
sha1: f049c806744855e4420844d47e051949fcf06661
# z6 m. i7 u- u1 d9 j9 p下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图: }$ A1 l. U6 @/ U% t
* _+ N/ v$ o/ Q: P. [8 u! c5 }
# X2 T, |) S) o- o& C! ?; |& l4 c9 y 3. 注册 PHP 到 FastCGI & }0 r" n) G; h7 w/ ?* | r4 w; C
2 |& e2 w' U( c4 x; A# Y$ t7 E) q打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
9 f* ?" g! n0 W; This is the configuration file for the FastCGI handler for IIS 6.0.+ l g: i$ B1 Q7 Y
; The FastCGI handler will look for this file in the same directory as
) V7 I8 u) G; a; fcgiext.dll. By default, the FastCGI installer will place this file into2 F4 I( V3 U, P
; the %windir%\system32\inetsrv directory.
) M# n4 r. y$ H9 j8 ]) T& D3 s
/ i: w6 U$ M1 C! I' o8 @3 f$ ~我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 2 W) n% ^6 `6 E5 {
: u( k5 i4 d3 |; \) D
在 [Types] 下添加以下配置: 7 f( W' A Z6 l, I
[Types]: H0 b& |. @& G/ g/ _6 |, X
% r* K, c& e4 ^- x! s8 O- {: hphp=PHP& Z3 z; E/ x" ^) Z* ~$ J
[PHP]. D+ e% f4 Z$ t8 B# L _
ExePath=X:\Server_Core\PHP\php-cgi.exe" F: u: Q* H8 p) Z& _
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)
* A5 h5 ]+ l `7 M
) @. _9 ]8 J: h& {5 o. v( A" U4. 配置 php.ini
. G( _8 q+ w! N0 ?将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini ) n, ` Z. d, S
找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面
8 C) H1 D% p* j m& k2 o, E( S0 k[Date]. O% M! P8 n( h t u; J+ q) x
; Defines the default timezone used by the date functions) B9 z9 B# ?5 O5 V
; http://php.net/date.timezone/ Y* c! M, ~" B6 h& p9 V, C
; date.timezone =0 w% c9 n# k/ S6 Y1 l6 M
更改为并去除前面的“;”:
$ W' ]! r# | L1 u[Date]
% z* B- @# Q/ @. d$ \/ e$ u: k; Defines the default timezone used by the date functions7 Q6 |; T G! V! ?2 L
; http://php.net/date.timezone& H( }" w- R$ K
date.timezone = Asia/Shanghai2 q! l4 p% s( p' b( _- e
如果不改以上的date.timezone可能打开网页会提示500错误2 v# y- n) d( ~' Z6 Z; L+ L
找到5 W; C! f2 A. r& G7 T0 \) W
; On windows:7 S4 {. c6 [& }& `' v; G
; extension_dir = "ext"
& H* ^$ t- Z5 Q" i3 w+ m改为
) a' k! g4 ?% C) R% u1 ~" g; On windows:$ j6 R. y( R8 H
extension_dir = "X:\Server_Core\PHP\ext" / d4 I' a% V! T; R% H. W4 f
1 e x# L% ^7 w/ Q# d, v$ Q& V% j
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1 ! \/ a$ Y# u5 e! R+ ^
如下图:
. ^$ O; Z9 S4 l( Z3 @ 5 C" F0 c+ L9 Y; Y' s
' A" G7 c: r+ u& e- o/ r* S# K+ o' b找到:short_open_tag= Off;改为1 I/ V1 [5 F F6 l6 t2 X3 @* C
short_open_tag= On3 y3 w7 `* j: q8 Q0 Q2 ~% l8 r
$ M" u; E% L0 x; s
至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是
- R5 a! u/ x" d;extension=php_bz2.dll
4 d( U3 }' y5 x5 U) x F/ |;extension=php_curl.dll* f% ?. `! ?) P' g9 T. w8 u
;extension=php_dba.dll6 S% M) G, R5 z
extension=php_mbstring.dll
" ?' [+ Y1 q0 h# A" U2 R# ?extension=php_exif.dll
0 T- `0 r! g- Q( |;extension=php_fileinfo.dll- W( M* k' z! s& c2 q
extension=php_gd2.dll
/ D; o: \- E( A6 i i9 l. L+ W+ Q+ q;extension=php_gettext.dll! T4 K" S1 K d! N# l
;extension=php_gmp.dll
8 }; T P6 h3 |# r/ L0 C;extension=php_intl.dll0 g. t% C: P6 y1 b( o5 D8 G
;extension=php_imap.dll
; V# }# E9 D) v/ t# B6 K. R;extension=php_interbase.dll
/ t) w: }0 |; c7 s) O5 V) A* Jextension=php_ldap.dll
0 j9 U0 l6 I. F' @7 l/ a;extension=php_ming.dll
/ g& s. X) C$ {' n$ h;extension=php_mssql.dll5 r$ {; g& [8 `' ]! x
extension=php_mysql.dll; d T! d1 `! N& Z( ]
extension=php_mysqli.dll
8 \2 s6 h! }& R! x7 l6 c;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
* D+ m5 r/ o8 _' g! G;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
4 s" F( a% ?' l0 ?9 G;extension=php_openssl.dll
/ s8 ^5 s; k8 j6 C6 U3 P;extension=php_pdo_firebird.dll5 \ M8 C' ?3 Q/ A% h
;extension=php_pdo_mssql.dll) H! c& z0 J7 }7 j1 B# M
;extension=php_pdo_mysql.dll/ C" R+ J: f+ X* R9 N9 T* X
;extension=php_pdo_oci.dll% y* J5 I. a2 C, Q: g3 I# e% d$ N
;extension=php_pdo_odbc.dll3 l* k2 s) u0 n% u2 z3 V4 }0 ?; c
;extension=php_pdo_pgsql.dll
2 y* n7 F$ P6 l" b( X1 P;extension=php_pdo_sqlite.dll
( B7 m v. A/ N, a ^6 w! {4 k;extension=php_pgsql.dll+ k6 b1 b* W, a$ P: e4 I `0 B
;extension=php_phar.dll
% R- Z. D: [ P) _' d$ c;extension=php_pspell.dll' C f' m: Q& W( R' I( Z0 a, w4 a; T8 i
;extension=php_shmop.dll, C0 D( w* N5 x# p
;extension=php_snmp.dll+ _$ E9 j2 t1 i
;extension=php_soap.dll
( b7 o; F% X' C- j;extension=php_sockets.dll
5 m+ |3 m. ~: S- r: C% g9 @2 g;extension=php_sqlite.dll
# s6 S" t8 S6 e" P: Z;extension=php_sqlite3.dll n, b/ n, S, |, q( {3 d
;extension=php_sybase_ct.dll
3 w1 h+ r- g$ ~3 O6 ?" ^' I5 r;extension=php_tidy.dll
6 J$ v( i; C. F$ C;extension=php_xmlrpc.dll
1 w& [. z1 C2 L9 f/ g;extension=php_xsl.dll
* p% {9 X# O7 y4 h9 V+ L0 g$ n;extension=php_zip.dll
' l3 n3 g; h0 z- F注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行), G! d+ e2 t4 ]! F, T
保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!& M' ?$ C' p2 Q& K; F
/ d3 I8 B1 h4 t2 t: ^0 R' i) I# D9 T, q$ _
5. 配置网站 # Z! v& |2 M' A& @5 G8 G
$ U; v" J3 f2 v3 [) ?. D打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图
' n0 X: Y. C% c' N2 N( ]) i2 v- B8 {/ |+ t. B
3 E) [3 h1 C7 \- T7 T% z0 P, @# a

+ X9 t+ T7 ?5 k! Y9 q( `- j; s9 x Z1 u) J# W# E% p- @
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll 8 p) ]% [# T9 j3 m0 K! R
# ^8 [' X4 Z+ b" Z1 E
6. 写个 php 测试下吧
8 h& r1 m3 G9 E# `2 h. |* I C j$ k+ b. s5 t
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!; c5 o1 v# L* h6 n3 U
# G3 {8 F8 ~* w3 {0 d0 L. I3 {: C
, Z* Z z: @! }
. |9 ~* F; \3 V) p0 k2 v
测试是否安装成功!
! R' d0 q0 ?* ?* q建立一个网站,phpinfo.php文件内容为:
- m* G0 h/ s0 D" v/ W3 x0 P8 B" y文件:phpinfo.php
$ @2 e6 U% r4 `; `) a: ?7 R<?php
# ?; h2 f( Q' \phpinfo();
! [& A3 t) R0 \$ A# ^?>
* R& W2 ]- J' L
0 n2 O- c% }5 f; q. ^) [: V看到类似以下效果说明你的服务器可以跑 php 了。) T( A* O& {5 d2 w6 U9 u

" E0 L/ y0 ?8 ]' I$ ?; g) C4 N安装过程出现小插曲,如果运行测试文件出现如下提示:
8 `$ H- S* k3 ]/ ]1 R, ^( F" ^先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:
/ p$ e+ d1 s* X/ u, |+ k错误1,3 U3 g: ^# \4 c
fastcgi error& {9 {7 S4 b4 L3 _( _4 z% I+ x/ d
the fastcgi handler was unable to process the request.
3 ]5 C$ U* x3 | q( K' w/ S* o5 K-------------------------------------------------------------------------------- ]# l( f6 T a2 h2 x# ]6 v$ k* u
error details:
, R S/ n) p, ^1 [8 c5 S* z# ~error number: 5 (0x80070005).
) n4 e; G( X& `. x! t+ [error description: 拒绝访问。 ( |. d' l& R' ^% J7 t, x
http error 500 - server error.( A5 J& H3 d: ]/ d( x4 h/ e# y
internet information services (iis)
; Q |/ S' _/ r, Q) e5 z5 q这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.1 e3 G4 i N$ M, _
# O% L8 o. {' X: m错误2,7 o4 r" }& g$ S
FastCGI Error
$ u/ |+ I/ [8 t2 cThe FastCGI Handler was unable to process the request.
3 Z, t j8 h5 U" S! Y- b- V--------------------------------------------------------------------------------
4 r* V/ N/ b( hError Details:( h; f- X; s0 o
Could not find entry for "php" on site 1960240566 in [Types] section.
: z" y! ^1 b7 B+ ]; N0 I9 dError Number: 1413 (0x80070585). 4 r" R; E+ N w% `9 W5 D
Error Description: ?TD§?÷òy?£ $ `; O7 U+ \ t3 J' ]
HTTP Error 500 - Server Error.
6 p( O' l4 y1 O5 F# S. zInternet Information Services (IIS) $ a9 D/ ~* M$ j4 A/ O) b( c
! C" b9 d7 K }- ]3 L2 v即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
9 t* G D8 Q) P' J错误3,0 Y5 P+ {! i% ?; R! |
----------
4 o) A6 |$ D' I2 {$ HFastCGI Error
5 Z+ a8 Y1 F7 S4 d2 _The FastCGI Handler was unable to process the request.
6 R: s: c3 H: @! a9 bError Details:6 ]6 u8 r- z! m) l" R" [9 W
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.
! M$ J8 e1 r0 D' B2 w& A, p! yInternet Information Services (IIS)9 f2 `, V4 r e% z0 l5 I
--------
$ _) Q; s) s. R+ \7 Y4 c: N我的PHP目录在C盘
/ S# N( L, ?2 W& B' B `# A当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
0 w' X& w7 t$ j* Q! W结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。6 D: D& ]9 p$ a8 d1 H
把 C:\php\php.ini 删除,搞定!
* H1 J- ~7 V9 F! r' h随后用FakeCGI调试工具才搞定原因..
5 ~/ e2 ]: g$ j2 a) j1 j$ U9 G感谢FakeCGI,痛斥我的坏习惯!!!6 o% D3 _0 V7 Q$ _( ?
$ K7 D( J- v( b4 I
; K- \- P0 g4 k$ i& w( s0 Z
+ h Y) U: f& K
! a, G; i3 ]) N: V( I7 ?# Z$ u% Y, E" k( q6 V' a, [6 p+ u) u2 b
PHP5.3.0特除配置
% ]) t* S, @7 \ s6 r9 L一,如何正确调整上传附件大小限制?1 \# A2 E8 U5 J/ N; z
修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:
+ O6 |! K: B' [% f! z: ^* x6 H4 {. m1. post_max_size =10M
4 t. O; x$ s6 a3 _表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.& K9 B- F/ x7 _! f
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
5 y. ]& m# W) R" S. J9 c; ?. ?2.file_uploads = On 7 h+ g, O ^. \, o, M% b
是否允许上传文件,如果为OFF您将不能上传文件.2 c3 p) G( n _
3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\"
6 |* g3 ~' t' y; G( \上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.8 q0 y" d9 S# [ ]0 N5 W
4.upload_max_filesize =2M
O1 Y% ]. d* p1 d. y6 v( }. }最大上传文件大小,此项针对上传文件时单个文件的大小.
* v5 o4 T! N$ e+ ]! `" X" A与post_max_size之间的关系:
5 ~5 H5 X) K' _+ N- {在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
4 B2 b$ n! ~/ C5 A6 u修改之后一定要重启 Web 服务。8 y: i4 O" U) h" t
注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.0 d1 u3 B* s8 l' {+ d
二,EXIF信息服务器配置说明:
; h6 k0 }# T: q. h1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
; U; ^* R3 k9 g6 |2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
+ E7 y% v! X E* Q" Z5 M7 r3.找到[exif]段,把下面语句的分号去掉。
! o% \8 D% Q% t& Y;exif.encode_unicode = ISO-8859-15
: N. B. t" }% ]5 }- M;exif.decode_unicode_motorola = UCS-2BE- D& `$ @ v7 g1 ^9 e
;exif.decode_unicode_intel = UCS-2LE# p4 y" t* X* |/ _! k$ \
;exif.encode_jis = % c; @) W5 o* }/ @6 } {; ^5 v
;exif.decode_jis_motorola = JIS
! }- \ s7 s3 \' b: r) j;exif.decode_jis_intel = JIS
6 r: n6 j& k( T; sPS:3 L' K3 j# S) q- A0 |2 \
安装版PHP的方法: # }% R1 X; f. Q# N) C! ]' K7 e8 }
点击NEXT
/ g" D% n5 S* a4 j4 s ) w- ^* u3 `4 k0 n" T a
打上勾同意
& s- T, B0 G* `& F- A
* j$ g' G8 N6 M出现安装路径,默认路径,点击"Next"; U- L0 N3 @3 j
4 {' V9 R) o( a/ d3 _; `
在这里选择:IIS FastCGI,再点击Next8 g5 X$ K6 D5 `- P/ M; N$ j3 i9 s. i

+ ]* q; x T& t0 h然后在模块里选上- y+ }$ k; }+ M q' d
mysql
2 w2 I& K! c4 E: oGD2
( G/ G" x* X$ p* J) c2 g# YMultibyte String% U, U# G, _% g: [) Q) w
mcrypt9 H1 i P: z+ l
之后点击"Next",安装成功! 1 M: H$ l7 r: p% U
0 W; U% O# q& h1 M5 _; q
* @ R8 @6 v0 z+ d, c% ~" r/ P) a- V; l+ R3 `2 Q! t
待续: |
|