- 注册时间
- 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的完整方法0 p# G v7 V* |; n
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
2 |: U/ r; o: i& F4 iPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0
( a6 p5 K) @: k% ^" 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安装方法我记录下来,其中包括出现的错误.
" w6 h; f/ b ]2 C1.下载 FastCGI For IIS6
# K9 X: f; p/ t% T- h+ {fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)- B2 `# E5 J+ U) i
下载:http://www.iis.net/extensions/FastCGI,选择: x86- c m; A( @6 m6 S$ a
; \- U0 P7 T$ T' x; Y3 }
5 O# w$ a. o8 b* ~; y
* @) [0 T8 F: b7 n# X或者直接下载:http://go.microsoft.com/?linkid=9655696
; }1 P _: v: Y; L $ z( n! n* k; h) |0 L6 K. I
下载之后,双击运行进行安装。
; R' _0 u8 p: U& a8 N0 e4 U(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
' Q5 G, P6 x2 _) o
% ?! i9 ]4 j( F+ t5 o8 D安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:# U1 h* y! c4 e. `; j* c0 J) W5 [
9 M+ M' C4 q2 v, I7 C( u; n% C
/ d! M# \9 x& L3 Q# l7 A( L, V$ B
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。 ~9 m) i8 P! g9 y) y4 N1 L
& e. O. H* m8 ~, b
( q( k; W3 G3 r" a/ q% H( Y* U. i; F I- }% _( C% k
2.下载 PHP5.3.0 Windows 版
) ^% y. P/ K/ _8 a- i由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!
9 W3 W, o" o1 t# G新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,
& T; e5 o" l4 v- o3 \5 d/ |5 ^( b9 @' m, M选择:PHP 5.3 (5.3.0)# u2 s: f) k: e
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
6 J1 b' e+ f, ]" m1 Jsha1: f049c806744855e4420844d47e051949fcf066610 d; f0 W/ K! W! O9 T6 J* X
下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:& P, l3 g) s3 C7 q$ D/ W

" L% c+ X8 B3 [) Q5 S R
6 y( N& ^3 O% O2 J. B I 3. 注册 PHP 到 FastCGI ; }7 r$ y: B+ B2 w/ r+ @( ]
# L9 s& K, J7 n; p" a k
打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
+ T& f8 W$ S. @0 N# \ c1 W; This is the configuration file for the FastCGI handler for IIS 6.0.3 } J( c R; n; B& Z/ H- e1 }
; The FastCGI handler will look for this file in the same directory as
6 b8 w+ E: g U: s. [: c" `; fcgiext.dll. By default, the FastCGI installer will place this file into4 r4 i+ _% ?$ W
; the %windir%\system32\inetsrv directory.
( M, ^! A" v/ |9 C- W" c2 M; M3 b1 n5 G; P* E
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 , M! T/ q& l$ j; D9 F! W
+ k6 ^" s+ J: n8 F! ]在 [Types] 下添加以下配置:
: i$ P. }8 U9 b+ y* }7 h[Types]
/ M2 ~- C/ E, T: z. m8 T5 F! R, C f* W; [9 N9 @
php=PHP4 @" p- s' H- s. x* I0 [3 B
[PHP]
! {$ D3 k" s- ]* C; _ExePath=X:\Server_Core\PHP\php-cgi.exe) a# S' e6 O! i7 C. D: y7 _. u
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)
/ ?1 s& z9 W3 `' A B
* E3 s' X) e& C, O: n4. 配置 php.ini , [# t7 H6 B5 p& E) b* _
将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini
9 E% ~2 r- R# s- n! y找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面. d- W# C/ J3 }$ U% @
[Date]- F8 @* g( s7 F; x2 P
; Defines the default timezone used by the date functions d y0 S3 ^6 v" f8 z0 \4 D% R
; http://php.net/date.timezone
4 S' F/ w/ g l8 `8 K( ^; date.timezone =6 x' h' U; e* c/ A( L1 Q
更改为并去除前面的“;”: ; u3 l7 b6 a( N* {& _2 N' n
[Date]- v0 h" r; J( A, D4 u
; Defines the default timezone used by the date functions7 @' d' R$ P( D. C! {! U( a
; http://php.net/date.timezone& l: R( f( E! j o( e6 u
date.timezone = Asia/Shanghai
+ J7 T7 \: H5 ~如果不改以上的date.timezone可能打开网页会提示500错误% P Y3 M# A/ e" l1 M
找到
- U1 n3 H+ k; O L# _& X' @; On windows:+ P# g! a7 L3 Q- q/ r% i
; extension_dir = "ext"
0 ~4 y+ m% O O5 c& {) P* Z9 C. W改为
4 r- M5 z+ C5 z! ?8 r- g( U$ q; On windows:" ~3 ]; z C) s R/ k
extension_dir = "X:\Server_Core\PHP\ext" . \; K# x I4 g# J: {! r
; n# m n! I* V, e. U6 F找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1 / M7 V$ m" w+ p% O( r
如下图:" {) ~2 X5 N# N/ Q4 V
6 {' l5 w. p* x. R# w8 N) z" m: J5 v
y s. Q( e, s% ]' l( g9 s找到:short_open_tag= Off;改为
! n- T- J4 X) p& O$ d- r+ ?7 \ short_open_tag= On
, B s* g& r1 \# ^( d; a/ G5 A0 q9 _, x8 Y5 W
至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是5 Y2 K. q/ T( A* m% Q
;extension=php_bz2.dll
0 X8 D# K9 i6 l! G;extension=php_curl.dll+ E) J# a- l$ a/ J+ J9 Q x* w, u
;extension=php_dba.dll5 X, H% S3 z2 l2 u Q% v
extension=php_mbstring.dll
, I9 j9 m6 \1 X& zextension=php_exif.dll# i3 c1 r% m( ^
;extension=php_fileinfo.dll
' P6 } E" g/ Y) f; i" N fextension=php_gd2.dll$ E$ b# |( Q( Q. k: Q0 m! k
;extension=php_gettext.dll" L5 [9 S' Q; l: e' N
;extension=php_gmp.dll
0 d5 a& T: `- s! c$ g( ~;extension=php_intl.dll7 v5 m" x5 }8 e0 q* c' u
;extension=php_imap.dll
& d, O3 Z: E, G- Z( c- ] Z4 U% G0 ];extension=php_interbase.dll
3 P% a& A5 h* T' @4 E4 textension=php_ldap.dll
- n' _5 n) o. z, u$ H. H;extension=php_ming.dll, v7 V. }, S s
;extension=php_mssql.dll
. w9 h" t5 K w& y/ S$ Cextension=php_mysql.dll8 X, Z+ O8 r i* Q- B% Q
extension=php_mysqli.dll
; N* N6 a$ w7 {) H' B- j;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
2 ~" D! M: E) |! ^: A/ Z;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
/ S# N+ K9 B: T( Z. \' ]/ y;extension=php_openssl.dll, @7 T+ g; Z+ T) D6 p
;extension=php_pdo_firebird.dll4 C, m& B" Z% U! F2 Q
;extension=php_pdo_mssql.dll
- @0 W. X$ [9 c' f( T4 B/ T( Q, g' j;extension=php_pdo_mysql.dll9 z& X# [+ @& O; {; J& l
;extension=php_pdo_oci.dll
* q, S( _ B- U/ R" [# [;extension=php_pdo_odbc.dll [0 {* B) A7 o( f/ A
;extension=php_pdo_pgsql.dll' v2 c$ q3 `! o1 k4 y
;extension=php_pdo_sqlite.dll( _3 _, A( E% j' t+ w" H
;extension=php_pgsql.dll
5 I+ [% R; A/ M/ M9 g$ V# H* R! j;extension=php_phar.dll
r5 W8 @) P8 \: x6 J;extension=php_pspell.dll: ]+ E6 z/ V, u0 T5 N! e% Y
;extension=php_shmop.dll- h; p. b! l# b! q1 J
;extension=php_snmp.dll4 F4 ^5 C" @7 B9 v1 v" _; k, ~ z
;extension=php_soap.dll
$ S( }- _* J; u5 W4 a;extension=php_sockets.dll' Z* Z) `! T4 J5 m2 b6 s
;extension=php_sqlite.dll
+ g8 p' ~8 |$ B' j) D5 A6 k$ x;extension=php_sqlite3.dll
* m9 Y" X0 j# \9 R5 u& l3 q;extension=php_sybase_ct.dll2 h) R6 H4 B" p, I% D* ~7 s; [
;extension=php_tidy.dll
3 Z, S1 T- `$ f R- a;extension=php_xmlrpc.dll2 D4 N" |6 J) w+ Q5 U7 B4 |' Q
;extension=php_xsl.dll: o0 t- i" Q' C* _. U5 L
;extension=php_zip.dll
7 O+ t. M' U6 z7 s4 D% T- y注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)5 ^; L* x, J. j. c5 d; n- s8 [& ?
保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!7 e+ e1 m4 Q" P* c
3 W0 @7 f# u# F9 _, _
8 P( a! w! ?3 s" X, r! }5. 配置网站
" \4 y6 G8 H; H0 [2 T6 d! f% s2 i/ U" j4 `) }
打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图) A9 J0 Z( _4 _
8 Z9 b" D" `! S9 E, x& P
0 x/ k4 x* b7 D8 h2 a; ]
3 p* n2 b7 w/ l. r+ Z* I6 C9 p% Z4 v+ j" F5 Z3 ]
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll * ]5 m4 P, r! K* ?( L
6 ~7 `/ n* W4 m1 D5 o6. 写个 php 测试下吧
7 }3 ^' k* O% b" X' A4 w: f2 [+ ?, A1 ?$ {( i/ O7 }
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!- j+ K- ?: l, N. N
0 B2 w0 [9 m. ]) t, I9 J; L( H( }7 ?0 Z7 e m f
% W6 a: y( B) M2 v
测试是否安装成功!
: ]9 s$ G9 P9 ~5 u建立一个网站,phpinfo.php文件内容为:
3 v9 _- ^3 U3 k% T. L/ C- q, B文件:phpinfo.php
; o5 n9 ?1 V: e0 ~# g2 z<?php- g3 q& w3 I2 B0 F5 o
phpinfo();7 h" e) S3 r9 S$ @2 G
?>
0 V A$ D9 B9 j2 U
+ _' \& {$ m" m4 a! n- g+ z) y看到类似以下效果说明你的服务器可以跑 php 了。; |0 S$ ]. T; L2 b/ y+ |
# F4 C0 F% H4 G+ [6 n
安装过程出现小插曲,如果运行测试文件出现如下提示:
3 P& F6 s* z: h2 S. Q, ?. a先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:1 N3 W6 ^3 p( {8 N9 _
错误1,/ ~% b0 y9 n6 a0 y/ j6 m
fastcgi error
! [" K: z$ c* Z4 }* B( e2 _8 nthe fastcgi handler was unable to process the request.
1 \8 h4 s3 c; B$ q! q--------------------------------------------------------------------------------
0 e' o/ [2 V# K3 {error details:
?) N# k1 n) {: b& terror number: 5 (0x80070005).
- q, I: d, |8 Q) R6 W; s7 ferror description: 拒绝访问。 * B% C. \: w% C5 f: X3 }" \
http error 500 - server error.
) S! d/ r& p; n/ V+ ]internet information services (iis)# K$ `* d1 M0 ~ c: s
这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.
/ M4 R# W) e" A4 X
# N q- `7 n% w8 y1 }错误2,
: x7 @3 {3 Z0 LFastCGI Error
6 B8 `; Z2 i9 Q. ]' H- tThe FastCGI Handler was unable to process the request.
5 o' P% Y" N5 V1 g/ X--------------------------------------------------------------------------------
0 T |9 a- y# Y- B+ u/ \Error Details:
0 |, T& M( `/ }9 SCould not find entry for "php" on site 1960240566 in [Types] section.
" h' }3 s5 K( f4 c: lError Number: 1413 (0x80070585). ; L' C) I: @( e/ |* _; l
Error Description: ?TD§?÷òy?£ 7 @. p- T" l6 B3 W7 h9 _
HTTP Error 500 - Server Error.
/ w; D* n) O1 TInternet Information Services (IIS)
; f4 D# J: X& l: q: T1 J3 |& c: z/ F# \& N
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
$ [0 O! n1 T$ S& T错误3,6 t u9 P7 j; j: E" o, C
----------
3 c* k* @1 s- e- y: u8 {FastCGI Error 0 C9 P' T8 `! I9 j, M" i) ^6 S
The FastCGI Handler was unable to process the request.
5 F9 S0 F$ t5 [6 m; ~; B4 \Error Details:! r$ q! d* k# C( a8 } ~0 R
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.
" U" S+ ?4 _4 `0 i" kInternet Information Services (IIS)
! @$ o! @/ U! @; R--------
9 s- w: r! k0 G: V5 M5 z5 D0 j我的PHP目录在C盘 7 p6 s; A# `& l% `
当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的..." @6 ~ l( [, r/ d7 j+ F
结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
# t R; \: v& h4 ^6 \' D把 C:\php\php.ini 删除,搞定!
, H! d5 ]$ N1 F$ x$ i随后用FakeCGI调试工具才搞定原因..* X$ a, P5 g2 F @! n) Q; H
感谢FakeCGI,痛斥我的坏习惯!!!
8 }7 j0 I( l, a% A( i( w& C ?! w {3 q1 T
5 |( K8 J, \2 V, j* C4 c% G) D& t
( ^* ]! ~: O. u- X# {: h( z' f
' h& k2 R8 U% I3 x7 a5 b1 D! p
( P$ H: y4 z u, r! hPHP5.3.0特除配置; g7 x3 u4 Y! U
一,如何正确调整上传附件大小限制?
$ H$ D/ A" ^9 M5 S8 U0 y; i( r修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:0 x4 E) m2 R$ e; J
1. post_max_size =10M 9 ?9 Q6 P5 H+ F& m1 t2 T# J
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的., o) w% J5 l. u$ g( q! a$ v
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...# u1 n! ^ ^, A- [
2.file_uploads = On * p: p, Z* ^" s( w8 | n& r
是否允许上传文件,如果为OFF您将不能上传文件., P. z# K {% j+ c; V* ~( S
3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\" 2 S6 `0 i$ ?8 M
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.
. ^- D2 X+ e0 b9 s9 _' Y, S4.upload_max_filesize =2M
$ m) m: C1 u, {$ t最大上传文件大小,此项针对上传文件时单个文件的大小.. l, ~8 {5 @. |- P9 x3 O; j B% @
与post_max_size之间的关系:
+ N( c/ g% `1 l0 U: I" L在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.. R3 f3 s, D9 W( C: ?% |& @
修改之后一定要重启 Web 服务。6 M) l+ [ ]. E$ D5 B9 s& m b8 d
注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.3 d% O3 `& \) r W8 ]
二,EXIF信息服务器配置说明:7 E, Q0 [6 i8 s/ V) R9 w T( f
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号' c g& n5 h8 I. x$ G: D
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
# r% A! D- @( {+ C3 q3.找到[exif]段,把下面语句的分号去掉。
9 [2 H$ l2 x! `/ W7 ~3 ]1 B# u;exif.encode_unicode = ISO-8859-15
, F0 t9 n/ `% a;exif.decode_unicode_motorola = UCS-2BE
: S( n: h& c) s9 H4 X" L3 B;exif.decode_unicode_intel = UCS-2LE
4 L2 r9 C; Q( ^/ Z6 c" i8 q3 h;exif.encode_jis =
& X' v5 @: j: ~;exif.decode_jis_motorola = JIS; J0 e7 T; [4 B' D. k
;exif.decode_jis_intel = JIS/ z. H; B! c1 c! b# A( x7 y; {
PS:
1 C& \; S- E) s8 I P, H. ~安装版PHP的方法: : o; D: ?& X/ \
点击NEXT0 c" S( u" k9 ^/ b% a2 v% B

6 W3 s2 s, R) z: d0 i% j打上勾同意9 k: a$ h, r- e7 G2 t+ t

3 ?- ~8 ]) n: N1 d出现安装路径,默认路径,点击"Next"
: ?! k/ i* u! X# @$ s9 D, j# y `* v4 T% \/ O! V& l e
在这里选择:IIS FastCGI,再点击Next
$ l2 i1 S5 _' }. \ ( i, h- C% ~: Y3 k' ?
然后在模块里选上
A6 E) Z% _# S% g; r. }. T1 {1 umysql4 m' o! O4 p. I+ B" R
GD2
: w- t- a5 O! cMultibyte String8 x: m4 v3 k N! W: B3 Y$ J
mcrypt. w, C/ V2 z& z5 w
之后点击"Next",安装成功!
* V: t1 B- v4 l- G5 m5 c; Q' O
. \* |0 Y, ? D9 @; }1 ?/ b' g% L N- W% Z- ?. _- \9 o
! N9 K. c" J" J4 y; @! x" S* v7 ^待续: |
|