- 注册时间
- 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的完整方法; @& ~2 a# N' v. Q
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
0 U9 j7 `+ g; D0 pPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0) F# v0 m) H4 I _" T3 L( u
微软已经和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 o% N+ h3 C' u1.下载 FastCGI For IIS6 . h; L, X& U" |3 S4 J3 F% e
fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)0 t1 Z& t, Y/ \/ X
下载:http://www.iis.net/extensions/FastCGI,选择: x86( g8 G2 H6 ^) \# s) J, V8 `
1 Z5 o" [0 J S$ {9 V: Q( G ! I5 G( A+ h6 }- G/ ` U/ m
. n9 F* l" m/ \7 ~0 W
或者直接下载:http://go.microsoft.com/?linkid=9655696, J9 c& S4 i; M: B3 p9 o
) V2 E; s' }5 q: J
下载之后,双击运行进行安装。- M- I9 r, _1 k z5 _4 u- S% d
(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
5 Z; A- `' P: j8 `. d a3 u e+ D
8 V3 s" S- L' |安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:& E7 O$ ^/ u1 [( {0 V
5 R# L8 c9 I5 K5 p# e
3 f# f& G( }, g* ?9 Z' a& d6 E: a3 Q8 ~. Q. O% L* G
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
+ @; ^' G& T& ~
' R3 R! e& p! V% F. C 6 u$ T7 X/ x7 ^+ Y4 _
3 d& {' J: R. |3 K Z5 B0 }1 G2.下载 PHP5.3.0 Windows 版
6 U9 s0 w3 g) z& H, W; @* Q$ u由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!
% T) o4 a' x; i新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,
) o9 K% K* B! ]* D4 R选择:PHP 5.3 (5.3.0)5 k* L0 F, {# N* E! s
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]1 H/ j, L S) a
sha1: f049c806744855e4420844d47e051949fcf06661
* [1 I/ y- s& U e2 ~. `6 C- x下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:* c* ^! u: O8 q H; `- R; ]

: h! @- z& \8 r/ k5 H
1 U/ Q* n7 O5 C& Z! l U 3. 注册 PHP 到 FastCGI f! M2 L* u0 V# \ p# [. {4 }
0 s) s# z0 p+ C/ g8 ^5 ` t7 |; ~
打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。; e0 h& w3 Y! l
; This is the configuration file for the FastCGI handler for IIS 6.0./ e N! X$ h7 L4 s' K* `
; The FastCGI handler will look for this file in the same directory as
8 p1 a# }3 M# Y2 [* |4 ~; fcgiext.dll. By default, the FastCGI installer will place this file into
6 \) U! _% F2 \5 ^# X; the %windir%\system32\inetsrv directory. 4 E9 S2 R" _9 j+ ]
+ ?' p) [7 e& ]7 h$ e: W
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。
5 a0 _; j; x1 R" p; e4 ^* n
$ ~4 g( l4 i3 `7 g- K8 O9 @* f( M) _在 [Types] 下添加以下配置:
. |2 F) \6 [' g+ L" ~[Types]1 l8 W d* z3 q6 s2 G
, q' }1 s0 u- E Dphp=PHP
+ k( D8 n3 T7 z9 x[PHP]; \' g( v* G7 q- L8 ]4 n: U
ExePath=X:\Server_Core\PHP\php-cgi.exe& g: r6 F+ R* I) t0 n& X7 F
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)+ U4 a: P0 H& L9 s- i
' Z; {4 j9 `/ `" m4 f7 i4. 配置 php.ini * \2 s1 [* ^8 l2 J4 x# e
将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini
+ ^5 I) l* {. \5 [2 i" m5 x找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面: @6 v- k$ L0 x$ P3 k: n( w
[Date]7 O/ O: o) ^" _0 \- w
; Defines the default timezone used by the date functions
& R& `- m5 [( x* O: U$ g; http://php.net/date.timezone
; `5 M8 m0 A1 q* D' r" T; date.timezone =
+ u ` K( q) N+ @更改为并去除前面的“;”:
. Q. \, _7 a4 l6 O[Date]5 J6 v7 w' P$ \, \5 b2 U
; Defines the default timezone used by the date functions: |6 J! Q3 X/ ^5 S
; http://php.net/date.timezone
% p) V7 m6 D S. O3 x& }date.timezone = Asia/Shanghai
- w" A* |3 Q" @如果不改以上的date.timezone可能打开网页会提示500错误
3 D7 g, |; }3 y1 L; P找到
4 R; e8 Z# G2 e& c0 [2 ?" h; On windows:. q& r8 U* c- E7 k' }6 G
; extension_dir = "ext"7 V$ F* J' }& }5 e% Z1 `
改为0 |( L/ r9 d" i, S/ t1 g0 V3 N) p: S
; On windows:
. x1 @- Y+ a# U6 ^2 Pextension_dir = "X:\Server_Core\PHP\ext"
6 J: u9 a- E: G; w9 p7 J3 Z1 F' }8 }3 V
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1
/ C! ^, {! R! ^7 c# N& ^如下图:0 v9 u3 T6 E3 A+ @0 i, Q3 O
5 |( X1 G8 a1 G% S& x
% s! E8 }& d+ {, g找到:short_open_tag= Off;改为
1 @- P6 j: f2 v+ L; O6 l a short_open_tag= On% @2 [6 A- l# ]* f( u% Y" p( L
' c3 p5 d' L7 }& _3 F" Y* O4 e至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是
* w8 W$ c0 T+ _1 f;extension=php_bz2.dll
* X. j! A b. [- P2 K! v _* W;extension=php_curl.dll
1 [- N5 m+ _" n;extension=php_dba.dll! |: |/ ~5 u. }* J( m
extension=php_mbstring.dll
' M$ T; m1 D0 w4 q" j$ W1 p8 rextension=php_exif.dll
. P& s" k- B! \6 I;extension=php_fileinfo.dll
: v% Z& |6 F( m9 ?4 B* C# fextension=php_gd2.dll
) s5 |$ Y- c8 R5 c) G;extension=php_gettext.dll$ Z6 J. U6 s; U
;extension=php_gmp.dll
! U$ Y* b5 M; \;extension=php_intl.dll
# N& Y" x: w# @8 |( j7 j;extension=php_imap.dll
1 q J% f: M1 K* l. n8 z;extension=php_interbase.dll
! ?. w( t9 l* L+ z; f9 nextension=php_ldap.dll
7 ?* ]+ ?2 }- R/ u' G4 @, y! _;extension=php_ming.dll
& ?2 f4 M; H, G! _. q. |# |* F;extension=php_mssql.dll1 U9 n0 k4 e3 i# P7 c5 w2 {) z
extension=php_mysql.dll
" N6 X3 F$ U, l+ ^9 u5 L7 Zextension=php_mysqli.dll# M8 Y, l( r3 t; U/ u
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
. Q" Z0 B: n9 M$ W# S; ^;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
, ^8 t; Z4 x* U2 E. h" p( ?" I;extension=php_openssl.dll
, m1 [) G, t# C7 c. ^;extension=php_pdo_firebird.dll8 m9 B+ P; j# G1 z$ L ]8 Z
;extension=php_pdo_mssql.dll
& g; K+ Z! F9 K0 J3 p;extension=php_pdo_mysql.dll
, x1 |7 k% i. f8 c% g; u$ ]- Y+ u;extension=php_pdo_oci.dll
# L! H$ k+ c7 z6 P: M;extension=php_pdo_odbc.dll/ Y) B9 ~2 k7 N4 ~+ Y6 d: A
;extension=php_pdo_pgsql.dll
6 c, x& o& N! ~: G' ]( a/ {5 @;extension=php_pdo_sqlite.dll
; t; Z8 ^. H9 x9 R;extension=php_pgsql.dll1 A" L6 r0 m/ g# C" F" i
;extension=php_phar.dll r8 g. U3 E4 _6 B O: B7 j
;extension=php_pspell.dll4 |# ]/ t) ~: c/ S
;extension=php_shmop.dll5 P. E* X, J% W( X# [
;extension=php_snmp.dll
3 \1 F. o" v: m( x9 {" F;extension=php_soap.dll
$ {% q0 e% n- m( G8 ^5 w% `;extension=php_sockets.dll
" b8 O6 l6 ~, K;extension=php_sqlite.dll, h7 }) b2 z6 B. P. B
;extension=php_sqlite3.dll4 z& ^1 a/ ~5 b; M3 B5 n+ L# Q
;extension=php_sybase_ct.dll
M$ c' S: a( b1 \' Y;extension=php_tidy.dll
# ^1 j$ D1 f$ \* T3 i0 t/ X;extension=php_xmlrpc.dll
* O1 I' v7 v+ Q5 l;extension=php_xsl.dll& ?* Q& r* z6 u- k! F8 [
;extension=php_zip.dll
$ N2 c8 V' d& x$ t注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行) C; G& Q, S- S I6 ~& z
保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!* k( H2 s3 U }
& M2 k" v/ L+ S4 Q, E0 R
0 f4 c) v$ q! B4 Q5. 配置网站 * {) ]* t1 A5 l
6 ^, ^% h) ]! K8 b7 Q
打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图
0 ^$ K( c, r' j: s. t; M0 b6 W+ E$ K3 Z! {# C
& [! T/ D, o% S9 w; j

4 V$ S, D" U4 k
3 e/ y) b, [$ I1 ~& x" t( y9 C可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
& m% E a6 s: z. R/ _' Q
5 {. i+ {# G, {4 v# ]3 f6. 写个 php 测试下吧
: w- e# o" J' x/ A; g- l3 F& b+ v1 b5 k' F! {5 D
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!% R" d# `8 Z, R: d0 o' y
9 r* d: _1 {+ O. v9 o5 ?
9 t& g* Q9 D% w6 g/ c1 D1 d U: m9 u
1 d% M7 u6 v2 }6 t- H) r测试是否安装成功!$ H* M: ^) c: W
建立一个网站,phpinfo.php文件内容为:
5 j+ l9 {8 Z, [: [, D文件:phpinfo.php t9 }3 h2 g) u1 ^4 \
<?php
# ^1 A( v' J; B/ c. U3 zphpinfo();
# A7 F0 P7 d$ M?> 2 V# a2 W, A$ s; ^. H9 V
5 U- N' r* B3 p6 [( [) T看到类似以下效果说明你的服务器可以跑 php 了。4 |# J. }& @ ?2 o0 u
4 |+ H P" E1 f' m7 A1 ?
安装过程出现小插曲,如果运行测试文件出现如下提示:
; l1 j1 M# n$ r) t M. V; C先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:
! c- u; b8 {7 C" \$ m错误1,0 o! ]6 ^7 y! g
fastcgi error
, m2 h: E( `7 l K4 Uthe fastcgi handler was unable to process the request.
) v3 }% A+ [- K/ [--------------------------------------------------------------------------------
2 H4 \4 G" b$ P# d) T$ T, o: |error details:% j' ~" b6 I+ |, t- w' b0 B
error number: 5 (0x80070005). 5 u4 R) c6 `$ {% V
error description: 拒绝访问。
% M1 j) v7 y0 a/ qhttp error 500 - server error.
7 ~4 R6 t$ g# |internet information services (iis)
! `6 B# N4 L1 P这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.- D6 X, M# F, l. ^, ?% W0 v
, ?/ o- Z8 a3 E0 y3 P7 e. `错误2,& v: J3 D& q* S
FastCGI Error- i; ]" P# O: n% _4 E1 p
The FastCGI Handler was unable to process the request.
% y1 v7 k0 }# u--------------------------------------------------------------------------------
( Q, h- e3 Q: E; I, jError Details:6 b0 j; n& E K; b2 {8 D% m
Could not find entry for "php" on site 1960240566 in [Types] section.
" q9 W9 ]' C1 B: C( gError Number: 1413 (0x80070585).
4 E' ^& h4 S5 V# OError Description: ?TD§?÷òy?£ , N8 A# }( w0 O2 r& ^) b( b
HTTP Error 500 - Server Error.
9 R, i! X8 M3 D0 S# BInternet Information Services (IIS) % h3 q) ?. E/ b# A# s. G* Q7 [* F! k
' O: N; Q: [. o! x即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
+ }* n+ E- P$ I; T d$ O7 u错误3,
' Q( H* n( `5 S8 A3 b----------
$ G" S9 O9 l2 b" u* b( [FastCGI Error 7 a, I3 ], |% a' |$ W
The FastCGI Handler was unable to process the request. 9 r2 L4 H4 h; X
Error Details:$ Z5 L1 K: }3 B+ O
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.1 F+ O& ~9 I3 ^& n" O* ]. P
Internet Information Services (IIS)
/ B U, j% f% a9 f$ ~2 {* |--------9 D0 e6 `/ M3 \ g
我的PHP目录在C盘
5 [( X4 c) Q5 H% _" f j7 K1 ?当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...5 a+ m) h& j2 m3 V; M6 s$ _
结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。/ h; F1 e$ k! d9 E& i/ z
把 C:\php\php.ini 删除,搞定!
+ P' f9 E- p) B( `随后用FakeCGI调试工具才搞定原因..
: v; h5 e# p( y$ p+ v4 z* E感谢FakeCGI,痛斥我的坏习惯!!!) s5 m! f4 ~* G+ Y/ `
3 {2 M O' Q' X
9 E; W* P0 d& T3 g( D8 r2 D5 D: ^, {/ W+ f: O& s$ y' J3 S) _
$ B- m" J4 H$ |) {
6 Y: e7 P# M" d4 W. s8 w
PHP5.3.0特除配置# F7 v! l4 r3 J" i
一,如何正确调整上传附件大小限制?
# [4 l% m9 p: R8 _+ h修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:7 {1 c, p4 \8 v; x: q% j
1. post_max_size =10M
4 E. u0 X! J5 |表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.6 B2 _8 J4 ?9 W* _+ t
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
4 R& M+ B2 @* L& E. P+ t& o; f$ \3 N8 P2.file_uploads = On 8 ?: N7 Z" V% p& y5 G8 G. v- @+ S* f
是否允许上传文件,如果为OFF您将不能上传文件.
) F q+ y1 d4 L7 _3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\" 8 l- ]) u" e6 U) g" u2 y, C- R
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.% J& G! U* `5 t
4.upload_max_filesize =2M 6 y, b1 w+ s: \1 h2 s- B3 l
最大上传文件大小,此项针对上传文件时单个文件的大小.7 U: Q$ R) m! Z% L+ V% _
与post_max_size之间的关系:# \+ c! s9 P9 v" X- t
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
8 z; ~! F3 o- G# S4 Q+ B修改之后一定要重启 Web 服务。
" m8 l, v# x% l3 z0 v注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.
9 N& x; f3 j* I2 g2 _% D$ |. W二,EXIF信息服务器配置说明:& D7 I( ]* q( W3 d' \$ n% r
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号5 ]: f: I* R/ ]/ U5 l
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
3 i2 f& k8 Y* H8 f2 [3.找到[exif]段,把下面语句的分号去掉。
" k2 s+ x6 p/ N;exif.encode_unicode = ISO-8859-15
9 t4 x# V, r3 ]& J* @;exif.decode_unicode_motorola = UCS-2BE
F0 w# X: ^, l7 k;exif.decode_unicode_intel = UCS-2LE
8 B* B9 W1 y5 S: [1 Y* q;exif.encode_jis = a& p, w# O& e/ _7 n
;exif.decode_jis_motorola = JIS7 q* }5 i8 b/ @: o* b8 k
;exif.decode_jis_intel = JIS
( Y2 r: P) j4 Q, A3 s, c* qPS:
2 m( W" V6 h* Y+ N. T+ G安装版PHP的方法: % J! B" _* P; P$ H9 u+ l
点击NEXT
) {1 r l Q# f2 J% z5 M N# r ) t' _; A& c& j$ Y/ h
打上勾同意
$ X7 a! @1 w: E" y
, t0 h' A( ^- k- Y/ f; v出现安装路径,默认路径,点击"Next"' j3 W0 c! Z7 I6 @+ u9 b1 M2 f& ?! A
/ g' |- X: C4 a; ?" d& D
在这里选择:IIS FastCGI,再点击Next1 b$ S% @) T w0 A" b* i) A! D

& w3 k( m1 _. y8 i: [ Q# h$ ~然后在模块里选上. U h, x/ Q, v, C2 v
mysql
- j" B' E" h5 e- T8 f' ]GD2; D4 }2 t4 r* z' w
Multibyte String
" W {1 h6 D* @, L2 a! h1 @( rmcrypt
) J- r; ?8 m' X0 h. J% ~$ m* S之后点击"Next",安装成功! 1 y; R1 ?* i& r8 L
; ~ l" ^% n6 @2 j, K! C( E
, G" N. `1 \, \
" y3 f4 T2 R! z9 p! M+ Y待续: |
|