- 注册时间
- 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 i8 ?# e5 f8 h- ?8 }$ ^' W0 {
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
5 V# G' Q/ x0 u# L5 XPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0
2 |/ y, p8 h5 z. L5 n: A微软已经和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安装方法我记录下来,其中包括出现的错误.* K1 h$ e; A- H6 ~! h
1.下载 FastCGI For IIS6
, H8 c5 D) c8 W" k. b! [fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)
6 B8 F; f, w) b3 m下载:http://www.iis.net/extensions/FastCGI,选择: x86
. T+ j1 @5 `* J) ?! v9 z8 D# f: U" M/ e% n+ Q" E/ e5 T# C

6 p1 R5 V; |! C8 L! ]& J
- @- N- \! F3 h7 ]) W或者直接下载:http://go.microsoft.com/?linkid=9655696/ d2 {! W- n0 q. e8 l [
* U3 U' o0 K9 w3 s7 S3 b) ]下载之后,双击运行进行安装。, g4 f( P' @ S
(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
' Z0 Q8 f/ T$ A# g$ L0 V5 G& N, O6 e1 p$ j
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:
5 n7 R8 S/ a: a& F! c
1 S9 l9 I j: P6 [5 U- Q4 J / k, O) |/ `& W+ w6 K' S
I6 x- }6 E7 F
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
9 t; i5 ^7 Q/ Z$ T8 `. Y4 n8 T7 E
$ D0 M" p$ R3 v# L7 E. m
9 R& ~8 S7 D4 X* p
y% Z) k1 B" o7 H2.下载 PHP5.3.0 Windows 版
0 v5 ^4 Z0 N! x: Z由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!/ E m$ b }' G" ` I% z
新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,6 P& z* y% g# X2 P$ U3 I
选择:PHP 5.3 (5.3.0)& m& W# `9 e* C. h
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
: i0 m1 P+ b: i' b' f+ y* ?sha1: f049c806744855e4420844d47e051949fcf06661
7 F4 n! p, R, P! W- q+ U' F7 K. S下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:
4 a2 b" q1 n& v0 I" S $ M; z X' L3 B8 r6 }7 z8 ?$ \; }
$ Q9 D4 e. f6 n3 s- o5 S 3. 注册 PHP 到 FastCGI * b E! h7 p. R" U7 |
1 r8 e& K8 J4 D; z6 @- U打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
3 }" Y' i) B+ t; M7 V$ m' A9 k; This is the configuration file for the FastCGI handler for IIS 6.0.- B. F1 S% X4 N+ d) @ h
; The FastCGI handler will look for this file in the same directory as
0 M! S+ i5 M3 ^) ?7 a; fcgiext.dll. By default, the FastCGI installer will place this file into5 s' _2 `7 a5 |1 I
; the %windir%\system32\inetsrv directory.
* `3 {8 z6 d; J/ F% l4 s9 `$ u
7 k+ l& g2 v9 E5 l& M/ p我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 2 V4 X' d7 d. q$ ]. q# ^" r
( A# O4 B a" _* b# d0 D在 [Types] 下添加以下配置:
3 d! o9 z& B- d u$ w* ]9 b[Types]4 J& ]# ?3 P4 L. N$ [$ c/ `
4 @- T" a3 l9 v8 p1 V
php=PHP; Y1 t8 n) y. w6 Z
[PHP]
' d& `+ I: |0 Y5 Q! W2 ZExePath=X:\Server_Core\PHP\php-cgi.exe
h1 e, I; {# C+ w, n这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)
; Z7 a! W J9 J
}8 d: W- ?; t% C4 A5 [4. 配置 php.ini / b* M8 s* ^9 b2 p4 _6 l- }/ S
将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini - w: I* G: Z2 N% }4 M5 M1 l' _+ x U
找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面8 W5 Z! ?. {1 j+ `& z) C
[Date]
4 f0 p, G+ S7 Z1 k" n9 t8 P; Defines the default timezone used by the date functions8 C/ e7 W; m8 y; n
; http://php.net/date.timezone
y ~0 j% z* \; date.timezone =4 b" J j$ a. f% m: ^' X" t
更改为并去除前面的“;”: 1 M+ r5 ^ X1 j3 O( ]$ ^+ w6 E
[Date]& s; @9 e8 {! b2 ~2 V. L- c
; Defines the default timezone used by the date functions
% J3 G9 v0 _; a! O; http://php.net/date.timezone7 a& P" E+ b8 a+ }3 G9 o$ `# v
date.timezone = Asia/Shanghai
- E2 ]2 o8 m" n" @# M/ X) I9 S/ M1 _, l如果不改以上的date.timezone可能打开网页会提示500错误3 g( k- Y# s1 ~
找到
5 O/ z0 p# C2 c9 Q! J, b! K3 P+ S; On windows:+ y3 E$ f3 _% r7 v! e7 h
; extension_dir = "ext"
( a: B8 E! V- C& f4 a7 d改为
2 e( L$ S: }9 q4 [; On windows:: ?$ Z% L) U+ m' t
extension_dir = "X:\Server_Core\PHP\ext" ( g) X! B2 U& T# O( i
: e6 \9 C6 z# t9 X4 J7 X; \找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1
2 M& d. e5 _1 q4 T e% B如下图:
* o( G5 |- ]7 b3 O+ v( V+ e8 M 0 J3 c& g d$ }. a F/ z7 K
3 W" y0 Q9 K6 z+ c
找到:short_open_tag= Off;改为+ B# I0 T- _: @5 D! c2 R
short_open_tag= On1 {( i$ d7 G, Z
* P: z1 N) p- i7 F# _1 I" Z
至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是
1 y8 o. V) G; @) o3 S M4 f) F' i* e;extension=php_bz2.dll
+ R8 W; P# F% r;extension=php_curl.dll
( S5 B9 [/ @, u/ D;extension=php_dba.dll6 i. Q$ T }& n; j/ j0 X
extension=php_mbstring.dll) n/ c) v8 d1 G* v/ \( ?$ O& R) }
extension=php_exif.dll
/ i7 S% B5 W, B* k- V; H- y; w+ ~;extension=php_fileinfo.dll
* d3 i; P d6 W9 G R5 _extension=php_gd2.dll
$ M/ Y: x5 c1 X5 Y6 `7 Y/ L;extension=php_gettext.dll
* N! k- b! h! B( X6 h6 G/ h$ l;extension=php_gmp.dll
/ u# |3 _$ X8 G ~" f;extension=php_intl.dll
; Q( J4 _+ P6 h) {3 e;extension=php_imap.dll; u% ?3 R" O# ^; J# r/ ]. @
;extension=php_interbase.dll
" f" q* X* u- c% ~4 p5 r% |$ ]2 {extension=php_ldap.dll# I! S5 m3 m8 ^; t$ T* z/ _+ h, S
;extension=php_ming.dll
+ I! e3 ?/ u/ P. c) b/ @# T9 b;extension=php_mssql.dll& W/ t) y/ [6 r' `- z3 {# Q
extension=php_mysql.dll% t) V9 `0 a- o' Z
extension=php_mysqli.dll
% A4 C' s6 k, ~9 B: l;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client" A. `' ?, m& a& s* @* ]8 h9 {: V
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
. u7 A2 Q: O- }/ n( i3 b$ m7 z N+ U;extension=php_openssl.dll I7 a0 M O5 W$ X/ M2 G# m: \' b7 _
;extension=php_pdo_firebird.dll B% K( y2 E L
;extension=php_pdo_mssql.dll+ ]( Y/ }3 m- C* _1 r$ c% L7 p2 V
;extension=php_pdo_mysql.dll- ~) u3 I8 v! ? S, Y$ u
;extension=php_pdo_oci.dll
; Q2 `5 x1 c4 X5 ~6 j% r1 U;extension=php_pdo_odbc.dll
. t5 Y* b* f5 o; K" E; E$ p;extension=php_pdo_pgsql.dll2 d& z& @! f# C0 m& E8 _; T
;extension=php_pdo_sqlite.dll
c/ H; t7 r9 r2 @# H. U6 d" h;extension=php_pgsql.dll9 q6 n8 I, x$ {$ [" W- I3 R
;extension=php_phar.dll$ ]5 X& F" m& Z" a7 V! U9 ]
;extension=php_pspell.dll
: K8 p; o; o3 s;extension=php_shmop.dll
) R8 V/ W1 K; Q0 b/ q. u$ z;extension=php_snmp.dll; X. B( ~1 l5 t# v3 j; z1 Q- _
;extension=php_soap.dll% m9 w7 O0 l" `& l, D
;extension=php_sockets.dll
, ~6 s* [ [5 E9 L n+ N;extension=php_sqlite.dll
/ `2 B9 Q9 ?1 k+ N7 B' k' d) B;extension=php_sqlite3.dll0 I) F( h1 x, c3 z2 s& m
;extension=php_sybase_ct.dll3 v# G- v, ]# Y5 T3 v# u5 Z& Q5 {
;extension=php_tidy.dll' z( A8 S: Y2 O& ]% O1 F2 d1 e: z- g+ P
;extension=php_xmlrpc.dll# b. Y6 f1 R0 }0 x2 `4 h
;extension=php_xsl.dll+ I5 X( `9 V2 V$ x) o' `# ~
;extension=php_zip.dll3 ?' @7 Z3 a/ V8 f5 ]% U1 g* M4 ?' n
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)5 b% }& s% |3 B( H6 w; c, s8 i
保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!% Q! O( N3 e% L% Z! }& e
& L& r( X6 k. u9 e: f( N, r
% z" S! W. Q' [: l+ Q% O
5. 配置网站
a6 | u. }0 Z4 L; E6 T/ u
, q% e! p+ T. d# b打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图; A' Q4 H7 ~4 i7 X3 b1 z
& k8 t. c, Y- M6 F
+ y( c! H2 k* [; n. `
2 q% N* C# `8 a, D( Z. f& ~- ^7 C& M. H: s, G; Z: m% V: O
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll : S: R1 L9 _# v. I% ]
" T7 S( T% s. S. C9 b' K6. 写个 php 测试下吧
) g. w! `* P, w, ?$ K" h1 U
/ F `; P5 a9 C7 p' |6 R; Q# O修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!
1 p" R8 P1 b* E" J9 w. E
& U% C7 a- m' N. C" ?: u; Q
1 B$ z$ V F* `8 g6 I+ E( \5 R0 Z/ O; y" }3 X p: b4 D
测试是否安装成功!
! ~. q+ Q6 {4 U0 q建立一个网站,phpinfo.php文件内容为:
: }! E m3 e- O3 R# y0 i文件:phpinfo.php# r8 k* Q5 {. H# Q2 B
<?php
! S1 V {: J! U! w/ |phpinfo();8 q& u% l) X6 o/ R
?> / C& o; d. u( ?
: h/ Q7 v2 ]2 w% U- x# V2 p看到类似以下效果说明你的服务器可以跑 php 了。7 t; i! R2 g! X/ o2 k: n6 a4 u0 ?

' _6 b* X5 }' k9 F6 D4 S安装过程出现小插曲,如果运行测试文件出现如下提示:/ z. P! }* l, x
先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:
: t) P3 e: @9 T* P z: X$ L' [8 F错误1,
0 M X h$ `" V9 tfastcgi error- x o0 O2 a! S) J3 G# p4 O$ {. d
the fastcgi handler was unable to process the request. * V8 n# y: {0 r- b, q _( {
--------------------------------------------------------------------------------
' `/ a* j: s; {5 E, Lerror details:
3 u3 J* r' J# `# |3 W# I9 |error number: 5 (0x80070005).
" u3 ^- G7 v& v, Q3 lerror description: 拒绝访问。
! i8 v8 @" V: ]# |; E. U+ ehttp error 500 - server error.
1 i+ _' N! }; v! s! Z( sinternet information services (iis)
) C4 ` d- y6 g/ j3 |7 N这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.
& A8 S9 N: t$ M9 |& i. i$ j: z
9 B& R# U$ s7 ^+ k7 }错误2,
+ c2 w/ k" M, B x0 xFastCGI Error1 T+ m! G* G5 [% j$ x9 X L7 p" k
The FastCGI Handler was unable to process the request. ; o- {$ Q3 W6 Q
--------------------------------------------------------------------------------
8 o! o) }, Q7 n+ A2 zError Details:- ~/ G. u( ?, g
Could not find entry for "php" on site 1960240566 in [Types] section.
- i* s: c" P/ i9 BError Number: 1413 (0x80070585).
# n9 M3 {0 e; B& ?, [Error Description: ?TD§?÷òy?£ 5 o Q8 w4 |" i3 r: n6 `$ J0 O
HTTP Error 500 - Server Error., T, x9 I( ]3 \5 S) O; J
Internet Information Services (IIS)
) e. E; F5 z8 M* f6 P8 z. J4 {3 J: s2 r) O* P! D. g- j" d
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!5 `( t7 r* ?" k) Z
错误3,
# A/ F) D" L q) \1 k4 G8 L" Q----------7 l: c1 G, \9 N+ K0 W$ t
FastCGI Error
! a& M1 i0 t2 l- I/ k2 u) ~The FastCGI Handler was unable to process the request. 7 v6 k$ y6 J i% x+ d& S& N1 U
Error Details:
# y5 b0 G @1 |9 z' T- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.4 v, u& P* }1 x7 I' N+ K1 h
Internet Information Services (IIS)0 `: p5 i! M# q& Y$ n' q, m, H2 T
--------2 |" S# t+ p& ^- ^
我的PHP目录在C盘
0 H5 X+ ?7 R$ M/ K8 ^* z( l当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
5 O2 y0 f, U$ L! M0 E结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
6 W2 s0 E9 G& w6 C) K* W2 v把 C:\php\php.ini 删除,搞定!
, ?& D0 z6 U/ }# b& p& {- @! F9 R随后用FakeCGI调试工具才搞定原因..
) m; J; W- B4 S! w感谢FakeCGI,痛斥我的坏习惯!!!
; O* ]7 m( c/ @; A# q; M/ D
- y) }3 n: h0 S, Y+ \$ I4 \& i6 ?2 w0 Z$ r' L
3 q5 ]* K. D# {0 Y" P5 {
& S& K# R1 \" ]9 c/ Z+ _3 X
b3 A6 F! s- T# I
PHP5.3.0特除配置2 H) L+ W5 z* c Z
一,如何正确调整上传附件大小限制?! J# p4 s( q" I# D$ ]* |
修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:
5 t( m+ ^; W% Z) ~; h+ |1. post_max_size =10M % E+ ?- s6 P4 y" k" R8 D) d q
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的. b) S& C ]3 d% }7 K \
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
" m/ a# H- @4 B6 b2.file_uploads = On
* s; R9 `" o8 z: C# [8 E是否允许上传文件,如果为OFF您将不能上传文件.
p8 _6 {; H/ b9 S$ D$ T% ?3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\" % T& J8 Y7 k1 B" v. Z
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.4 j8 s$ D: b" c$ p( c
4.upload_max_filesize =2M
8 r. Q2 ?6 F9 s最大上传文件大小,此项针对上传文件时单个文件的大小.
. G8 Q% b8 K9 T6 m" ^' F& X0 e2 A与post_max_size之间的关系:; s) [6 O; u( ?2 M
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
4 P1 U" @8 h- f% D+ G修改之后一定要重启 Web 服务。, G* ]1 D3 L: T6 s
注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.
1 n* z2 v( C# y0 j8 z# Y* G二,EXIF信息服务器配置说明:; i+ _# E( Q' H F' M- i
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号9 \- [' Q/ P. Y* {- ~( \. I
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
. T4 B; A* Y! O4 Z3.找到[exif]段,把下面语句的分号去掉。
; Y" g4 H u" q( A3 A;exif.encode_unicode = ISO-8859-15' x9 q7 i) T1 c" r: i
;exif.decode_unicode_motorola = UCS-2BE V0 {; C# }3 N4 s: x
;exif.decode_unicode_intel = UCS-2LE9 Z/ P/ z" N, ^, s
;exif.encode_jis = R4 \9 O; a, z4 y: Z6 X9 T: M
;exif.decode_jis_motorola = JIS( d0 r) d4 q& T, H7 d @
;exif.decode_jis_intel = JIS- _+ [/ m c( {) m0 {
PS:
, `2 {8 Z ~7 W安装版PHP的方法: 6 h- I1 l' F4 q5 k; g
点击NEXT5 X' V. I* u; p; `% ]# m

4 J9 U1 |. R+ S% `, b) G; u" `打上勾同意: |6 J$ i i: s# A4 q

' y! A9 p6 c" ?3 O出现安装路径,默认路径,点击"Next"
: J- m, S4 \, e$ {1 w
& \% {" ?" J! [$ o( g8 s I3 J% S在这里选择:IIS FastCGI,再点击Next' N L) f' n2 p. `( k) n" h

8 ^+ h. I7 R7 \) ^9 e# n1 X然后在模块里选上 h% f- F' B. c
mysql8 j# j9 v2 C' [4 s( k- y
GD2
- @; r. s! E1 J! p+ S, d$ M. bMultibyte String
* i3 C- d& q5 u) R( _# r. Pmcrypt# V7 \7 N& x* F$ S: c4 r5 n4 {" K
之后点击"Next",安装成功! 2 ^5 _7 C( S* ^+ s" Y0 u; j$ H
, ]4 k4 V n2 A) u; ^& {/ C2 m2 M0 V
9 B5 I2 K+ p6 Q) }6 X( g待续: |
|