- 注册时间
- 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的完整方法1 [' t- P6 N) |6 a7 u# J
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP+ }& p- n: ^+ H2 y- w7 M4 y
PS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0
1 J% S, y3 j" v4 y微软已经和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安装方法我记录下来,其中包括出现的错误.
, `1 v; A7 t5 Y- E1.下载 FastCGI For IIS6 2 S: X i; |# k: n0 C* t3 C0 d, v* f
fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)/ M2 I6 [5 n% v2 W) b
下载:http://www.iis.net/extensions/FastCGI,选择: x86
, y$ a' P; l! H
: b# w7 ~# @* f0 Q2 o 
, X! t' {) i; q* C8 `1 Q6 d9 f8 P# g% t! u. X
或者直接下载:http://go.microsoft.com/?linkid=9655696: [- \1 y3 n8 i3 W' C- u) i1 |
, X; f. p( C6 N+ l; G( n q下载之后,双击运行进行安装。
; X. n) R* t' a0 s/ L2 R& f(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
' b: @6 m/ }, Z0 W# j' Z# u: D: U7 {4 p, D: Q
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:. N, Q2 x, w! h. I/ ?( [
4 F- c/ |' V5 o9 [) H3 Z0 \: \3 e7 G" t
9 w& i8 M" ^! o
$ J9 l; Y E' W5 K同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
* a& {! ?9 c2 P v) H3 P7 ^/ T1 Z8 ^6 a' e% E3 x1 R% d" r

( Z1 L4 j1 x, ~! @- ~5 x5 ^4 d, l5 ]0 j$ x
2.下载 PHP5.3.0 Windows 版: [3 S" I5 `6 W* h: `
由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!9 [5 d+ @3 a7 L$ y
新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,* G7 z" V$ y: ]3 G* _! W
选择:PHP 5.3 (5.3.0): u% b5 V* w# p) a! k
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
8 q" l( n+ j- z9 ~$ R$ ~! psha1: f049c806744855e4420844d47e051949fcf066611 L; S8 k5 A7 [8 e
下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:- A- z H5 O% y

& ~% }3 v) N4 T( O/ e' v3 `$ c& _# r# _7 B2 }! P( o+ g
3. 注册 PHP 到 FastCGI & u& Z M. G; z
u9 a. z+ @) Y& C打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
2 w+ G. }- W; ?) |2 J g% ^; This is the configuration file for the FastCGI handler for IIS 6.0.& N) r3 e* i O8 j: ^& }! e
; The FastCGI handler will look for this file in the same directory as& ?# Y9 z( N6 B8 k+ ~/ ?; a
; fcgiext.dll. By default, the FastCGI installer will place this file into" T$ Z5 M1 n6 r2 h- K
; the %windir%\system32\inetsrv directory.
, u' H2 H! `) j; T! Y8 n2 k
8 d: A- s7 G- J& N我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 # Q. r% J+ h" W2 K, K; p
' p0 d2 P/ v2 F/ _: I2 {8 V4 u% k在 [Types] 下添加以下配置: 3 e3 [5 L( E& V: v3 j
[Types]& v: C: w$ o0 b! J' D$ h3 H
+ e i# F6 e$ a: w, { T& U
php=PHP
9 K8 {' @; a1 t' F[PHP]- C$ P8 x1 \. @, F
ExePath=X:\Server_Core\PHP\php-cgi.exe
8 B2 ?5 A' ?9 B7 j d. w& w这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)
; H9 n* h- y$ C J
4 r Y( K8 c s I- w$ E! i4. 配置 php.ini
/ K- d3 r! ]( b" n将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini . a5 H1 o, Y( G& ^0 e {7 Y9 Z
找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面; w" `1 d* x+ ^5 r2 q0 g2 g
[Date]$ l0 |" I) z) X
; Defines the default timezone used by the date functions
p" {$ t2 x! P9 m; http://php.net/date.timezone2 h) s, k- c: ?7 ?6 X2 ]# k b
; date.timezone = }+ O7 t$ P5 R/ Q7 d
更改为并去除前面的“;”: + }6 E, m4 L. S
[Date]3 h, {6 ?5 T1 D6 _% v# D; n
; Defines the default timezone used by the date functions' P5 J( R) ~6 u" H) j0 ^
; http://php.net/date.timezone
6 V+ L4 X% C' Mdate.timezone = Asia/Shanghai
' m& J+ ~2 B4 D& p( r# U4 y如果不改以上的date.timezone可能打开网页会提示500错误
! ~! y2 k9 x. W) m2 {; [1 U2 a- I找到" G3 x+ M( g' {) j/ N" y
; On windows:
8 a. X( E0 [- I" w; extension_dir = "ext"9 i6 b: \2 g) S" L, {- E
改为
6 `5 v- @" P* ]2 V1 J0 I3 f; On windows:* S E0 u" u5 ]$ a9 O
extension_dir = "X:\Server_Core\PHP\ext"
6 W# t& \) f1 n' h+ u! Y6 |& B8 w' x" a) `9 f
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1 4 q* i; e6 X8 y# }2 O: u% u7 h4 a
如下图:8 N/ o4 W7 k4 x/ ]) U

6 X8 y5 L: y& H
' J3 X& s: \) N找到:short_open_tag= Off;改为
0 E3 ]# p0 l4 ^2 Q short_open_tag= On" T; [) D+ @/ k1 S2 o) ?! X4 g/ @
7 R- [" Y/ @% K7 X# w2 {至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是
9 @, V! R- j7 s. b8 i2 k;extension=php_bz2.dll
9 @# d$ }" ^0 _;extension=php_curl.dll
) P Z& x$ h, W' m% U& {+ S8 x;extension=php_dba.dll
& D& b+ L% B% K, w: Textension=php_mbstring.dll
7 Y8 a- }! v) Wextension=php_exif.dll
- R6 j5 n! U2 X1 }. G8 N9 b' m;extension=php_fileinfo.dll; r2 D5 {5 L# H! n7 m8 C \( w
extension=php_gd2.dll' Z* r5 L& y6 j1 U+ h- L
;extension=php_gettext.dll
2 k& M' E9 q, B. ^& ~- n2 K+ C;extension=php_gmp.dll
9 q. |2 _$ M3 x' J9 k" o: s% G; |;extension=php_intl.dll2 J0 a, \8 F0 `! Y" |7 C6 p/ j
;extension=php_imap.dll
5 b$ ~7 x2 c5 `/ u+ M5 k;extension=php_interbase.dll
+ Q* Y5 |! @! C( ]* W T* rextension=php_ldap.dll
6 L, s- d& q' C6 p7 N: Y; E;extension=php_ming.dll
& N. @# }1 e+ F: w- n6 R;extension=php_mssql.dll1 g4 I1 O3 T4 h7 J: D' L) z
extension=php_mysql.dll5 c) F) o8 b6 i: y) P( o: z* f
extension=php_mysqli.dll
% d( [0 I* P5 x" p0 m0 K9 E4 u) }- s5 ~;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client2 F7 i2 z! B- D( g, G
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
6 B$ O6 l# p7 r# Q;extension=php_openssl.dll
, n, P" B/ t) V& c( D;extension=php_pdo_firebird.dll
5 \5 F+ f" w- b$ W" F4 b;extension=php_pdo_mssql.dll
, I7 u) [2 _0 S: \;extension=php_pdo_mysql.dll P7 q6 X% {& `. S6 U
;extension=php_pdo_oci.dll
9 o' Q% y) o! s9 U;extension=php_pdo_odbc.dll$ _+ R+ V9 `0 p9 R# K3 O
;extension=php_pdo_pgsql.dll
6 Q' i6 I6 f3 j;extension=php_pdo_sqlite.dll
- [$ g; J* m+ O9 h5 D+ Q7 Z( V) F;extension=php_pgsql.dll3 g, b) C8 T1 C* I$ Z% f6 R
;extension=php_phar.dll
& K3 q9 q9 x7 t;extension=php_pspell.dll) b$ _( d: {; o3 X7 r2 N# d9 C
;extension=php_shmop.dll
; G/ ]7 S2 u, \' B& V;extension=php_snmp.dll
8 l! V" J. j% u9 I* s8 {;extension=php_soap.dll
2 }. m8 o2 a. Y8 y# q$ ^/ b;extension=php_sockets.dll
" w$ w" `3 a7 B' m;extension=php_sqlite.dll H$ N7 S) S+ F3 b0 Z
;extension=php_sqlite3.dll7 h( {6 t- ?8 c
;extension=php_sybase_ct.dll. [* Z$ x: h# H# M. S! G' X- @
;extension=php_tidy.dll
6 i; M9 I" B: p: X( b;extension=php_xmlrpc.dll
+ ]" \; p6 E0 f! p4 T$ F;extension=php_xsl.dll: V# F3 ^4 g; g9 ]+ }/ x% ~; o
;extension=php_zip.dll! G* g7 C" D( o' Q s' b- b
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)
7 _& F0 u- B/ y, u保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!) t* D$ m1 P; L) X# P
$ ]9 r2 A- e4 N, K# ~! z: C. \; q3 M5 C( M- J
5. 配置网站 / P' t) V# s3 h. }% ]) g
1 D( d& W5 m; u% A5 e
打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图 y0 f! x: a! {7 g
1 ~7 [ |$ Y' ~* _' I7 v1 M+ w* g% \0 D% ~* F/ k9 U) \. |

" g( H8 q) \6 }: x( O6 w# Z5 `) N0 m4 Z6 y3 ^3 ~# f: v
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
b2 f. B( j+ i& Z/ l5 a8 ]7 S$ h. M( P% v9 b e
6. 写个 php 测试下吧
Y' m L& u. M! w. h! e- ?( k& T; c! `6 L m1 y- M
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!9 V* A0 ?4 p3 e6 h7 m
. W9 ^. G( k! _4 Z0 |/ h. h) [" ?! x e5 g. {& X4 ~
/ D! z+ z! Z1 G8 s& m; q( u) S
测试是否安装成功!
5 m" X0 g- g) v0 G$ C. x建立一个网站,phpinfo.php文件内容为:9 V/ ]8 S" c- h6 A1 g. w
文件:phpinfo.php
1 L% ~1 O" W; G8 l8 A<?php
( |$ p8 j! Z& W: Sphpinfo();
. x) Q* R& x( r?>
, s) v( Z/ l8 Q9 Q3 [8 |9 n# i5 m3 M
2 O( D& r9 w7 K看到类似以下效果说明你的服务器可以跑 php 了。8 y; q$ X9 }; ` ~) n9 I* i J

. M: K8 U: {- s. F! s安装过程出现小插曲,如果运行测试文件出现如下提示:
+ A8 H1 ~ D# ^8 N% s+ Z# f先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:' n1 w2 m+ b# X1 |9 t
错误1,: Q- @! w, g! I5 z5 e- y" c: [6 u
fastcgi error/ L' m7 e3 E2 w( b, H1 e
the fastcgi handler was unable to process the request. & E( n) R3 e( z: x
--------------------------------------------------------------------------------3 B3 \2 d1 I8 |# K, w
error details:' `# |) Z- X) q
error number: 5 (0x80070005).
* Q k I1 v O- v; F* lerror description: 拒绝访问。 / u. k x4 u3 M7 y1 ~2 a
http error 500 - server error.
. h/ {6 ~% G! P. tinternet information services (iis)
) H4 u1 ?' e/ A+ N- R) f" w这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.) L8 ~1 V. i$ j. k5 [, C
0 N5 S8 P' ]: y5 m错误2,' A, _0 b1 A4 w5 ~
FastCGI Error
8 X8 T! g, I/ y. w3 u& J' }! \The FastCGI Handler was unable to process the request. 9 S, x$ ^- h* K
--------------------------------------------------------------------------------! s7 {$ s1 F# K: B) u$ i/ \5 B+ Y1 A
Error Details:& b- [4 ~: M( J# N
Could not find entry for "php" on site 1960240566 in [Types] section. ~; G2 e) V+ X! m7 J( V
Error Number: 1413 (0x80070585).
' m* E3 N5 M: W; M2 E$ LError Description: ?TD§?÷òy?£ 2 j0 m/ k7 i7 e$ n8 C& X0 @
HTTP Error 500 - Server Error.( ]' }! C; f6 g) V1 ?: p
Internet Information Services (IIS) 0 H4 o0 ^3 Z4 ]* F0 v2 |
2 a Q3 E2 i7 Q* q0 t% {" D) C/ Y5 m即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!; U+ _0 @$ K6 w
错误3,
& {3 W; @$ a) k0 @1 V----------# W; z, h) f( [8 v% z2 d% V
FastCGI Error * q2 A8 w7 J, e N
The FastCGI Handler was unable to process the request.
& ` [/ k D* m" T' x2 Z4 b8 Z* CError Details:
6 e( k% e- ?6 W- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.! [, ]4 F! D4 C2 I7 E9 e" t1 @0 n
Internet Information Services (IIS)# X% C6 Z0 |0 g. m$ D# J4 T
--------
3 |; I9 q6 }% I6 r E$ V$ @1 m我的PHP目录在C盘 & J, X8 ]9 z- X5 P- ?0 t3 o Q
当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
7 h( j2 \6 ?: o7 n结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。9 i9 f" `+ Y( N9 U( B6 s( V
把 C:\php\php.ini 删除,搞定!3 o5 ~* n/ w' K7 \7 v
随后用FakeCGI调试工具才搞定原因..
- W, |6 B$ j/ K( j感谢FakeCGI,痛斥我的坏习惯!!!% m& ]1 i' H `& G5 W) U1 L T
# m0 N3 S& J$ y1 T
# x* G( y2 p ?& |- ?8 a; y9 R* `% f0 n6 S( a- R% ~
% V0 H) g6 z5 g8 ^# _: i: T+ F S. ^! ]2 l
PHP5.3.0特除配置: D6 T7 S2 t& N) i5 y
一,如何正确调整上传附件大小限制?2 x6 P( p, U0 [* U4 `9 J
修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:1 O/ u. n+ A; V* X
1. post_max_size =10M + K! ]' y+ d- `) ~3 } Q. t- W- Z
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
- _6 V6 W( ^4 R限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
9 A( U" }% V7 U" y2.file_uploads = On 6 O1 K- ]4 X- Z) Z2 U% D7 M" }
是否允许上传文件,如果为OFF您将不能上传文件.3 {( ?; d& V7 G) h; q0 t
3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\"
) \! d3 B3 |( ?2 X* a# Q$ g上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.+ L$ R* |1 e! Y
4.upload_max_filesize =2M . d3 @6 t$ C( d
最大上传文件大小,此项针对上传文件时单个文件的大小.
/ t7 H% {# I+ d与post_max_size之间的关系:
. z! e; s. L; U" E在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.# |0 E4 V) f( J* P8 `6 C8 V
修改之后一定要重启 Web 服务。
) w0 l4 C9 C2 y* W" M p( b# I" V注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.% [( P/ B' G" U% Q, a
二,EXIF信息服务器配置说明:4 T; a$ p- W! [( L9 K" }
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号2 F( j% D0 o+ d% o6 M8 l! z
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前# k1 j0 W I- _* I @1 O7 ~$ s
3.找到[exif]段,把下面语句的分号去掉。
( ?9 X( R! N0 ]( N) K;exif.encode_unicode = ISO-8859-15
& z" B0 X4 L L+ t5 o4 K" o( u;exif.decode_unicode_motorola = UCS-2BE0 R( U& {) E" l7 z
;exif.decode_unicode_intel = UCS-2LE, _) h; M: _) b# Q% C7 W
;exif.encode_jis =
4 L6 ^( j: Y: n* d) L' ?;exif.decode_jis_motorola = JIS7 [. u }" t D* `! _; P
;exif.decode_jis_intel = JIS
+ ?+ q, e0 U( y/ C, g$ ZPS:
+ b; Y+ p1 j% K% y9 H安装版PHP的方法: 
" p1 n7 y4 H3 x1 L0 `点击NEXT( R6 I L5 n# y k8 \, k5 L9 y
2 @/ h6 ~) E ?1 I' D% y9 u
打上勾同意
( |1 R9 B* Q9 B% g" t5 q4 Y3 N
* O2 t) ]0 _+ B, u* w+ T# ~3 r9 o$ P1 ^出现安装路径,默认路径,点击"Next"
7 Q R. {2 k; D$ p- p0 r% ]
( a3 `6 T: t4 J w' E# L/ u5 H在这里选择:IIS FastCGI,再点击Next) @" _/ O2 b1 ]1 ]* v3 e) x, x5 \
$ M0 Q- @& @) N9 Y e
然后在模块里选上
' S! n# @* o; `$ x6 T7 wmysql9 H& W8 [3 ?3 @
GD2 T' V4 H. {7 o8 z; D
Multibyte String8 m9 b& J! k1 E4 }6 M4 E$ N1 i
mcrypt
: f7 ^/ p3 q! g& i, H0 r/ [之后点击"Next",安装成功! % o" n9 [, T, F/ t# a) L
* \2 o6 h |. @8 v O- Q% z5 {. Y+ `9 \- w) J8 X8 l' E5 H1 w
+ Q2 ~! u3 O6 A7 E Z! ^待续: |
|