- 注册时间
- 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的完整方法
8 |8 g7 j% B1 a: n8 C4 Y b在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
3 X0 \& K) R- s. G# xPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.06 X1 A9 U' ^7 m5 P1 L8 G
微软已经和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安装方法我记录下来,其中包括出现的错误.
; r5 `- c9 h6 d4 ~- p8 o1.下载 FastCGI For IIS6
; F7 k @. `8 o0 ?6 yfcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)
6 M. @, O4 k5 G9 `下载:http://www.iis.net/extensions/FastCGI,选择: x86
" y! P- S& {9 ^) @$ j' A# k7 S S+ Z! }
8 S- o# ]% ~: i% u2 D) P1 M
; H9 `7 p: n, G! K( l/ ^$ I, B) _
或者直接下载:http://go.microsoft.com/?linkid=9655696
+ r# C& }% T) u0 q , ^$ p- q: x6 h- A" U- r+ c( U3 A
下载之后,双击运行进行安装。; i3 I R/ E1 I+ b$ [: i8 y
(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
' I: Q! ^( k' ~% ~% W/ R8 c- m0 O
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:& X% M' e7 |. Q5 h
6 [) X, x* ~9 y( o9 [( R- b: ?
$ F8 E4 @$ X( c: {
/ M2 t& A T, ?, G同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。+ q- |6 y; e2 l3 ?- R2 c6 v/ I$ Y0 {
1 z4 C/ D+ k& [( z . o2 ]: r7 q8 Z6 ?
$ L5 d" f& o" [6 }/ s8 Q1 ]
2.下载 PHP5.3.0 Windows 版& |9 x; O; V0 p+ D4 P" U) A
由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!/ m/ {% u- p& z9 S2 m% d" p) h
新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,: }# G2 b+ D* v4 v9 j
选择:PHP 5.3 (5.3.0)
6 K7 o4 ^9 i+ [, t( r% g, {( _9 s; p* mVC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
+ N$ R2 ?! t/ V) p! W4 T4 ]sha1: f049c806744855e4420844d47e051949fcf06661
) J; U. P) W* @* {下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:
( @$ n' O7 k% d) T: h
) X# K/ W, W: N9 W- R% s: i4 X) f% I0 b* `5 J
3. 注册 PHP 到 FastCGI
# V' z- x# K0 P; _- v
' r& ]/ M+ A1 M" Q5 T% S9 S, e打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
* \' b: ] ?/ C- G9 T% U: l+ A, y: `/ x* ~! q; This is the configuration file for the FastCGI handler for IIS 6.0., m% {! m" \* Y$ n) T0 F0 w! I
; The FastCGI handler will look for this file in the same directory as/ Y& D+ R5 I1 I- Q& x' a
; fcgiext.dll. By default, the FastCGI installer will place this file into
7 q% y% e& x" A) @; the %windir%\system32\inetsrv directory. 7 X# {' z, M! Q# S! J0 F
" V" O! Z+ W1 @: U/ b我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。
, n2 _$ W K1 {3 f: O9 @5 H' d( ]9 S( {! V0 T
在 [Types] 下添加以下配置: % i7 m$ _9 E& _8 o
[Types]" P b# M; P' M- R
, c% |& ]3 P5 `php=PHP% G) q7 {$ O/ I# t0 `
[PHP], I) u+ o, k) B# ~! |
ExePath=X:\Server_Core\PHP\php-cgi.exe2 i+ P0 j0 t5 q6 ~
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)0 Q& n: k( U1 c" W, d
# U8 V# n7 f( D8 n3 a/ g4. 配置 php.ini
/ c7 ?+ Y* G2 M9 j将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini 1 R# ^& H* V- ~' H; F+ P s
找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面( x$ ~8 m$ C2 ` f; d% r5 `
[Date]' d1 ]" s' K4 S9 c& d' k! `
; Defines the default timezone used by the date functions
; U$ [; B9 Z H1 c1 f- s; http://php.net/date.timezone" ?5 h& n5 D. ?# B1 N z! \
; date.timezone =" Q; `. s8 n% S) n
更改为并去除前面的“;”: 9 g" w& F* N1 O, R9 N3 @
[Date]% M$ f4 ?7 E8 k
; Defines the default timezone used by the date functions0 U4 p `. m6 \" `* p: \2 q
; http://php.net/date.timezone% v1 I) n/ K9 H7 `' B( e2 T
date.timezone = Asia/Shanghai8 l1 T0 d+ I! @( c* ?3 T6 r$ Q
如果不改以上的date.timezone可能打开网页会提示500错误
- m1 w4 F" R: q; y6 f# r d9 X找到
* f* v! e0 }9 h; On windows:; I5 I, B3 O" _. d/ r4 v
; extension_dir = "ext"4 z2 z# ^' o0 y$ c5 Y' D
改为
# _; J9 T$ e# [# G; On windows:: \& q# I" G8 L$ t9 L* i
extension_dir = "X:\Server_Core\PHP\ext"
0 q* c" p$ t. T ?) V5 d: q, K8 I
' t0 ]# j% a8 e3 x找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1 ( g& I4 e: |5 Z0 Q i3 Q1 T
如下图:
+ W8 c; g& D/ d/ n9 _( O
9 z+ d' Z. {+ n4 x' M8 ~ ?, [. O: E. ?* K' o; @& ?
找到:short_open_tag= Off;改为+ X8 B5 @, F# S% n- N% I
short_open_tag= On5 Q8 X0 l# P8 i# l# r6 h5 Z8 s X2 f' o
' F/ o9 N* @/ n. C2 W) A
至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是, o8 G9 t2 q! }. H3 `1 L h3 h
;extension=php_bz2.dll
/ E$ ]: s/ x8 F; y* H;extension=php_curl.dll
7 O G+ i8 V! M# {7 [;extension=php_dba.dll
' o1 n4 ]" P1 \. ~extension=php_mbstring.dll0 @% K* K0 v$ y9 m
extension=php_exif.dll2 B4 W; L0 p" G5 [/ O& F/ t
;extension=php_fileinfo.dll
7 `( o# c! E$ J) Aextension=php_gd2.dll8 X; ^- w* r' l7 g1 c
;extension=php_gettext.dll# b/ J+ X* B2 |3 C* U3 @
;extension=php_gmp.dll
4 t# ?% q/ ^& v: c; V;extension=php_intl.dll/ t8 x6 W& q) A
;extension=php_imap.dll
1 b0 O, g. G3 ^+ x5 i& D1 d9 Y;extension=php_interbase.dll
8 e* D5 y: ]0 I. g% U5 G& o# qextension=php_ldap.dll. T7 K. I% R z, s! J) Q, r B( B
;extension=php_ming.dll% e% ~3 l- [" B- _( O- B
;extension=php_mssql.dll
- v' X: |: S& d/ e) j4 B. k) Mextension=php_mysql.dll
! w/ o8 C9 q/ ~$ \extension=php_mysqli.dll
. ]! W3 K. [/ t4 a* \$ E, d! a;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
7 C: b3 y) R/ d;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
2 q! m' n& H' p. u;extension=php_openssl.dll. M/ D9 p) _2 a
;extension=php_pdo_firebird.dll
% H0 j3 b& u1 W;extension=php_pdo_mssql.dll
* p6 w/ g& [' q" m+ u9 w;extension=php_pdo_mysql.dll- g- I) @6 h7 n" B* L& b
;extension=php_pdo_oci.dll
( K; C0 E. j: _;extension=php_pdo_odbc.dll
# a7 ]; X8 L8 g+ i! n' u' R;extension=php_pdo_pgsql.dll
6 E+ L6 X9 @2 e9 Q# E% R8 [' w;extension=php_pdo_sqlite.dll
" N X; B/ u0 h/ e;extension=php_pgsql.dll: a* U" c# Z [9 ^: V9 W
;extension=php_phar.dll
: F8 \% L1 h; Q1 k;extension=php_pspell.dll
) O N0 @/ D4 T$ V! O;extension=php_shmop.dll
$ d3 m) [. ?1 U# c* s4 l;extension=php_snmp.dll
e! H) E# c4 n, Y;extension=php_soap.dll! ~# c0 t# D0 N" N+ _* ^2 D
;extension=php_sockets.dll* a# |& l6 Z f
;extension=php_sqlite.dll
% |0 C. K1 r5 K& V9 A# ~- {;extension=php_sqlite3.dll7 a: z& V" d4 l4 ?( d. B# z
;extension=php_sybase_ct.dll
" U6 o$ ]1 ^2 @' W3 [. [;extension=php_tidy.dll' c4 V" J8 G/ T
;extension=php_xmlrpc.dll
% y8 ?1 L6 d h: u2 W7 m2 r5 i;extension=php_xsl.dll( p! J' u4 w8 E, i
;extension=php_zip.dll0 c2 h5 B' D& g1 ^, m2 y" k/ D, N
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)
! b* P h( j5 Z1 B) Z2 J保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!
' G6 F. `+ R: M! O* f2 q, M: x9 v$ a
; v6 P( ?; A/ j* g" R6 W: p7 R* g
5. 配置网站
4 q& q% s* w5 a, H" K
' \+ \ i! ] V; L0 n打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图
3 e P, N2 J6 V& e1 i7 a' K% X9 e- E- J$ \
* G) q: ~# u# G' S ) `# g# H0 l; C, |5 M
; b( y- x/ Y( Z' y
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
& V, {& }% ~! W+ d! u7 x- e9 Q; Q y# `0 z) x2 F9 U, k6 N" `
6. 写个 php 测试下吧
( }: `- q, M: ~: L
% ?# s5 ]* i5 r- |0 V3 C6 I/ N修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!9 p/ _/ t4 \4 m% d$ i. s
6 _. C, Y$ l! E6 y& v1 L7 Z
; }* }; L E. M. H' _9 L# D7 {+ r9 `
测试是否安装成功!( S! ^* a# K* K( H8 }, i
建立一个网站,phpinfo.php文件内容为:6 ^! l& k& }7 W1 d& n7 A
文件:phpinfo.php" c: \7 ]/ d* G1 c" s o
<?php
8 ^3 t1 r; i, g( u/ sphpinfo();5 B# `0 i7 G7 B- S
?> ' ?8 S. ]2 G$ o: V6 o# ~4 h5 Q
7 i& T5 ~8 Q, c' z
看到类似以下效果说明你的服务器可以跑 php 了。% k# q$ ^4 m4 w" e
2 k' x/ F6 s4 @2 P A [
安装过程出现小插曲,如果运行测试文件出现如下提示:
, L8 h% V" X8 j" X3 Y! f+ Y先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:
8 H* Z" h& C- P1 i0 W错误1,
8 @$ H' |9 t, T% M& V. h% Xfastcgi error+ U7 }( B% ^+ O5 u( u( Y
the fastcgi handler was unable to process the request.
' z q& _, o) r7 B--------------------------------------------------------------------------------1 H1 x* b% V: o3 }, r
error details:+ k4 _5 u- }. Y( l5 q0 A* ~' f
error number: 5 (0x80070005).
: c, m! p2 [" Y6 ferror description: 拒绝访问。 + M$ C" ?" c, Y+ m5 U! E0 F
http error 500 - server error.# ~, p0 y# Q8 r9 j9 ~2 m# @. L9 S9 F$ Z* }
internet information services (iis)5 d) m1 P9 b6 t/ A8 V. d
这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.$ f. [( b: C9 B" E5 i+ g0 t
4 J r! |' J2 g. T# c3 d% p9 f+ x) N
错误2,5 R5 D% c0 T6 |$ f7 `9 r
FastCGI Error
: D) p. x! E7 V/ XThe FastCGI Handler was unable to process the request.
/ Q, \0 O6 k; X; f8 T* s4 A2 ` p--------------------------------------------------------------------------------
/ k% E) `* Q ?5 Y+ {2 ~% QError Details:8 L* W4 D O/ M x2 Q1 O" I% b
Could not find entry for "php" on site 1960240566 in [Types] section.
/ n( n% q7 @& m: o- e+ V1 BError Number: 1413 (0x80070585). 7 x, x- e1 |/ n, q
Error Description: ?TD§?÷òy?£
9 b8 _# l* y Y* O9 R' Y0 ?HTTP Error 500 - Server Error.
+ v( b! T$ R. bInternet Information Services (IIS) 4 M, r2 ~' B! r
3 s5 `! f8 J$ @% C$ Y# X6 M% i即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!: q8 f' a$ b3 L% F! F
错误3,
9 o3 O$ [6 T' _ l4 Q0 d& m----------! O, Y% a( k C: x; ^
FastCGI Error
8 b2 i: k* o. QThe FastCGI Handler was unable to process the request.
/ r2 o5 o! o( S2 p N8 N4 qError Details:! @: B, }# Q6 ]
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.
' H" y' x# q8 A& ~+ Q9 HInternet Information Services (IIS)
3 I8 g2 I# D2 E--------
, j+ w8 Q0 T0 X' b. ?我的PHP目录在C盘 4 ^1 a& j3 x+ F8 s
当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...5 V$ N; |5 N$ H) p1 g! T
结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
) n& R- B! H% ]9 I+ d; |" n把 C:\php\php.ini 删除,搞定!' f6 G- _0 n. N: v$ W
随后用FakeCGI调试工具才搞定原因..
# f* e7 ]( v" w, h, W% b感谢FakeCGI,痛斥我的坏习惯!!!
3 R+ U$ m ~) f' y1 `9 Q4 y/ U7 t$ g
5 ?% R% Z0 b# Z' u- [
4 h5 i6 ~) U6 ^$ A) v/ t0 L7 f1 C" J* R4 t
9 @3 M/ O; ~+ T4 `( O; l$ F0 B. Q. q7 U- Q9 x+ P3 D
PHP5.3.0特除配置7 ~6 P+ [" n0 K% }; b$ o3 ~( P
一,如何正确调整上传附件大小限制?* ^3 N& T; j/ a" d4 y4 _
修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:
, n2 S$ Z. P+ T$ U1 C; w3 m1. post_max_size =10M 6 Z( w: w! K2 I4 x9 T, Y S o
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
$ H. U3 q$ C2 E限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
; Q0 o7 W( @3 P* g/ e) \# t2.file_uploads = On 3 f$ @ R6 G& K2 a% o! w& ^
是否允许上传文件,如果为OFF您将不能上传文件.
$ k! \" m% G# i1 s3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\" 5 M+ Z8 A$ N# N- |, j8 W: X
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.! f3 q- L( I0 g* h6 R
4.upload_max_filesize =2M
3 F4 o" i4 b1 ?, M$ a最大上传文件大小,此项针对上传文件时单个文件的大小.
% L& @: B& P: t2 c# f# o与post_max_size之间的关系:) l6 L/ m0 F) K$ Z/ j/ f, |% X
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
# K2 L7 T' c' A9 n$ `修改之后一定要重启 Web 服务。
" p- G( t. R/ b, Z注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.
_5 E+ x# t# ~' J二,EXIF信息服务器配置说明:
; U1 Q6 q" T W3 b. D* _1 ~* |1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号6 ^8 R$ s1 s# v
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
* V+ r0 |! X: g- a9 V; ]0 Z, Q3.找到[exif]段,把下面语句的分号去掉。
x; R7 x* ~3 ` Y8 m7 b;exif.encode_unicode = ISO-8859-159 L' j9 n+ ^4 v3 O/ c: d4 \; u
;exif.decode_unicode_motorola = UCS-2BE; R5 S4 `4 K2 ~& D( S
;exif.decode_unicode_intel = UCS-2LE8 S$ J7 R0 c/ K& U1 X' Y
;exif.encode_jis =
0 Q1 y6 | V6 B$ t5 F4 O;exif.decode_jis_motorola = JIS
, e+ B/ Q5 E+ Y, B# O/ b;exif.decode_jis_intel = JIS/ X% t( c5 _% @. X/ H
PS:0 Q8 Z& F- Q( ~7 h+ i
安装版PHP的方法: 
& ]9 ~; s @5 j- M0 E! j" b, O+ ]点击NEXT
8 Z9 L* J$ L/ |% Y$ K
' T" f# z) G2 v) H7 U# _; ~1 [打上勾同意! P6 G" ~' Z4 |) N6 k' J0 ^

Y3 x$ ^; t- n出现安装路径,默认路径,点击"Next"
+ |; r9 ^% z/ H; {1 O
3 N8 O0 t1 g* t n在这里选择:IIS FastCGI,再点击Next
7 @. c2 S0 U% @( q9 |4 S* q: _
$ k+ I* A; g5 G; o6 f: o然后在模块里选上" C$ r& O% \& y) O7 g0 C7 L2 t- r
mysql
2 g% S6 b5 R$ o6 | I! o, @GD2& h% @- `+ c0 K2 }9 C8 ]. j5 E
Multibyte String
$ |8 ` W/ W( z4 W/ b, x% b! x" d, jmcrypt8 t! T( V( k2 A
之后点击"Next",安装成功! 2 k9 d" t9 I( M6 I, m6 p) V! p
# v' W+ Z/ A6 }6 a
) A1 @8 t8 t! l( ~2 w U4 g3 G
6 d A$ q1 G3 Y( g- l: l! D; ~待续: |
|