- 注册时间
- 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的完整方法3 n1 r4 X% X1 u! b a
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
# ~; m% L5 {# ZPS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.0, ~+ s3 n( N2 H8 s* H
微软已经和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安装方法我记录下来,其中包括出现的错误.. `( w8 n3 C- z2 E- d" B
1.下载 FastCGI For IIS6
+ N `. `- H) g4 W# Hfcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)
/ i0 j3 r( h P: W' A; @" r, Y, S下载:http://www.iis.net/extensions/FastCGI,选择: x86% ~( {" [) O6 X+ Z; z) e
6 F1 N0 h# [" z5 ^$ N
# j% v% _. x, ~* `5 b9 z: E' S$ |
" u6 C) D. i$ A9 g$ Y) k或者直接下载:http://go.microsoft.com/?linkid=9655696
* }/ H6 a$ D, z$ ]/ P
1 b0 n. z" |; k( H; _) a下载之后,双击运行进行安装。$ ^) Z0 V" |8 Y: {. y
(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
0 Q5 y- ?8 i7 W5 \7 w2 C
1 e9 B! p, u& C/ k安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:
0 S0 S% x8 ?5 [4 I. Q" q, M, l
3 V& c+ X* Q" b1 Y
0 f" C5 U$ K* m/ M2 Y$ e: ^- |0 \/ _7 Q8 [9 c$ C* O# D/ _: r
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。0 f6 \+ g3 d' D' X' w( n" n! p
! p" t% I! I/ K J5 F. V/ v' A
- V6 S) d$ h6 b {
: |! W; t% B. Q2.下载 PHP5.3.0 Windows 版
4 n7 p' D# X( H p由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!4 J9 h0 D2 L1 K0 W" M
新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,
/ j$ O# ^" L" I f( t; p选择:PHP 5.3 (5.3.0)( N) ^0 \5 i/ U+ x1 O
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]. _) v) K) _, U; j
sha1: f049c806744855e4420844d47e051949fcf06661
; C5 j2 v' C- O1 L5 ?4 c* ?& g0 B下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:
3 X# B/ \3 n7 V
. p% y; u- p2 H& R% x( m- m n6 ~
3. 注册 PHP 到 FastCGI
0 s- P8 }6 a1 k' A
6 a2 }7 }1 L. K打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。
4 S) h5 ?4 L$ {8 K) ^+ g! O6 s; This is the configuration file for the FastCGI handler for IIS 6.0.* X! }4 G$ g4 g
; The FastCGI handler will look for this file in the same directory as- I, O* M Q7 Y5 i
; fcgiext.dll. By default, the FastCGI installer will place this file into
# d( V' s% F5 m2 v+ Y7 _7 C; the %windir%\system32\inetsrv directory.
( j/ {( I+ l" b8 ]+ I) m& v O/ X, G" {) b2 c: k
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 & l/ w8 q! y% J8 Z
( t# V, t" o! c2 {在 [Types] 下添加以下配置:
. V" e4 t3 d' _2 u7 U[Types]
6 ~/ t* E5 S+ D X! i8 a) I+ k; ^% \- D/ K% C" c( n1 h
php=PHP
& }0 W1 D. r8 _/ X[PHP]8 T! z2 V0 j6 s- d; O# x- Z0 Q
ExePath=X:\Server_Core\PHP\php-cgi.exe3 }2 [7 j. v4 H4 z, I9 L
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)+ M( a# R# W- ^; V
) Q3 W x0 {; G8 C% J2 b4. 配置 php.ini
( y# q) T- c" _) Z将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini
! C; D% G# W, ^: ]' }2 o找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面2 {+ `7 z5 ~- ?' E
[Date]2 _9 @, u8 B! \) k; {6 u
; Defines the default timezone used by the date functions, p1 `* E1 F. b
; http://php.net/date.timezone' D7 g2 A; x, N! f6 r' ?
; date.timezone =9 B8 N) i/ l+ y1 s7 q( I# y% |' |% ~8 A
更改为并去除前面的“;”: 1 x9 A, |! ?; w) z, Q
[Date]
" ^6 R9 y: q. D/ O! i- T; Defines the default timezone used by the date functions+ R# `/ }2 }( z6 o1 F3 g% o3 [
; http://php.net/date.timezone
% @( U8 _; T& j9 F. k- Y1 X2 x3 ddate.timezone = Asia/Shanghai
" h5 h% O/ ^& l- ~0 G如果不改以上的date.timezone可能打开网页会提示500错误. j( h# s- W% G, C" i& o0 [* R& Q
找到
$ u3 x7 v: f4 ?: t: D5 Z; On windows:
* r8 P, V {. l) u; extension_dir = "ext"
9 G0 v7 r/ |3 x8 g- |# \改为
( s8 q. H/ A1 E& q- M. d; On windows:
5 ^! A8 q3 {+ `; W4 j4 eextension_dir = "X:\Server_Core\PHP\ext" ; i, p6 ` r8 Y) ~( c$ Q6 K' O
2 T2 E" B+ M' U& v
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1
8 t: W4 Q) a1 n3 P1 ~' `3 Y1 a如下图:2 u$ q% R8 K: n' o
- M8 U; `( U; n9 C7 z% y: o N" H) \7 ~8 j3 Y
找到:short_open_tag= Off;改为
* Y* `) i2 r* {: e1 S9 p, H( n' b short_open_tag= On4 D1 l- c0 Y9 P; E
' g1 {- b- O8 V% O
至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是; q- I( o( U6 M& O2 X
;extension=php_bz2.dll
1 F$ j+ m% w. _ U% C- t;extension=php_curl.dll2 q4 M" F9 u6 f% d5 z) b9 M5 f8 E2 M
;extension=php_dba.dll
2 _/ Q3 q8 S) N7 N- y( X$ ?extension=php_mbstring.dll
; z# k1 x7 A: b) {9 A: Sextension=php_exif.dll& P( s9 u% h ]6 V+ A: J* x% z
;extension=php_fileinfo.dll
' k1 S" I( X, u* | s1 m+ g+ Mextension=php_gd2.dll1 X% C. u0 k. Z% m5 S7 s: x
;extension=php_gettext.dll+ D/ W# g. {8 t4 O2 Y! `" U
;extension=php_gmp.dll
5 m$ J$ m S0 l/ ^2 J& h1 l5 l;extension=php_intl.dll
3 m, N5 F1 e& n+ z7 E) ^9 ?! |;extension=php_imap.dll
5 o( |! ?! `- K* |+ H;extension=php_interbase.dll
- \8 n- K& J% O7 [+ q5 ^extension=php_ldap.dll& t: b# h' v5 u- e0 b3 v5 x# j- i
;extension=php_ming.dll& {& w7 D" F Y- X; B9 ^
;extension=php_mssql.dll3 }5 n5 n0 g- e7 T
extension=php_mysql.dll
3 J) ^$ Y# N8 b+ U" ]. xextension=php_mysqli.dll
) p0 [$ g! G, R- R$ a$ S% a;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
0 T& c4 i+ r8 e. H1 p6 C;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client8 e7 O; |; d7 G* x6 P7 j5 I
;extension=php_openssl.dll, s! Y$ G6 c4 H, e
;extension=php_pdo_firebird.dll/ x. ~2 A: S# ^
;extension=php_pdo_mssql.dll
6 X ^) G C1 n7 p) e4 b;extension=php_pdo_mysql.dll% R4 t9 T5 u6 t' h6 O% d9 u
;extension=php_pdo_oci.dll# _; P; n. n2 v/ x( D8 D
;extension=php_pdo_odbc.dll7 X* c( \- f0 U4 o. z! |
;extension=php_pdo_pgsql.dll
, {# |) }) s* c- o;extension=php_pdo_sqlite.dll: K- D" u4 V6 |
;extension=php_pgsql.dll& q! g# h N) |8 @) @
;extension=php_phar.dll
/ d/ Z4 u/ p4 n8 e' K! R;extension=php_pspell.dll
+ f3 {/ t! W" p$ d;extension=php_shmop.dll
f; L# ?6 f% b0 C;extension=php_snmp.dll
. U9 C; d( R! _" k, ];extension=php_soap.dll8 |% e2 y) u% i! `8 u
;extension=php_sockets.dll3 Q/ I$ G7 b1 I' z% m, }. i6 {! S
;extension=php_sqlite.dll
# K5 ?. m1 u% q5 ~;extension=php_sqlite3.dll2 v) h! S; g+ r) v+ x" [
;extension=php_sybase_ct.dll
. h& ]$ ]$ g3 M! a3 c;extension=php_tidy.dll
# ^4 H0 C% m. M4 t1 Y) r;extension=php_xmlrpc.dll
* c+ j1 O) N! ~; B, H8 b. Z;extension=php_xsl.dll$ `* c8 |& Y: a: p8 Q/ M3 W
;extension=php_zip.dll9 G- V! W i ]( P8 [+ N
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)$ z1 x9 w; d3 b! \+ @, ]# @7 W
保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!! F! T7 f4 ~9 t* M1 ^, ?: e( y
4 o { f+ k$ p1 M/ d+ W0 d
" i" I3 `2 m- |8 i
5. 配置网站 " f( c9 r; z( H4 E' m" _
+ o! e" y2 J+ V' P- n7 S" t, w
打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图" k9 _7 F% `' T( i
4 k9 P" A) {7 t6 I" @/ r( }8 J) E0 k, t- K
3 t- k; H5 I/ U: E, x
- S0 I. {8 m' @: `6 `% ~9 ^" U/ N9 L- I
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll # q; G' f3 ~& C
. y3 ~6 g8 z& f" h J$ D; M
6. 写个 php 测试下吧
+ ]: l |8 C; H, o0 j9 z9 q
! Q- A) d; Y3 I3 }修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!
9 \! |% v4 z5 t6 e4 K' u( n
& u5 \4 V5 N0 f' f9 G
3 Z0 V7 L/ h( Z% L: c. d5 U) j' i) g" j. B' i9 r9 B6 f5 X
测试是否安装成功!% m- } m1 A- c
建立一个网站,phpinfo.php文件内容为:* |. Q6 }2 D, a! Q
文件:phpinfo.php
7 g2 U/ ]. X) f; `8 i2 v<?php
3 ]. {6 t6 a. M' r+ C6 E5 D* E5 Pphpinfo();$ s" a# z0 y# X" q' y2 H. P& X
?> 2 \* S4 g3 j5 _! p6 T! B1 h
* `8 Y$ E; J7 A" x看到类似以下效果说明你的服务器可以跑 php 了。
6 ^# d$ O" L3 N. l6 k3 u' J7 N
1 y3 V, r+ c. \7 h安装过程出现小插曲,如果运行测试文件出现如下提示:" z l* ]9 D$ s. L+ ?3 k
先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:" ~" k! |1 O" d: O: T5 j% s
错误1,
: R: \& S0 R1 u+ Xfastcgi error( H P7 `9 n& m. @) J8 h O, A
the fastcgi handler was unable to process the request.
1 N1 j; {2 V4 c! c# I8 ~ x--------------------------------------------------------------------------------6 Z: `( M1 j0 j( I# Z9 \7 @
error details:# P* Y1 c3 ~- c b* v3 I
error number: 5 (0x80070005).
, a! M9 T, v4 @1 B, D; ferror description: 拒绝访问。 : H$ n Z, i& _- N) `- u
http error 500 - server error. H8 {7 g0 L* i( j) @3 c
internet information services (iis)
, b0 A4 F4 T' x/ I) O. e这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.
4 ^7 Y' E7 U9 w& N# N3 m' {" b& J- [# X5 y, U1 W! {" J q
错误2,( R" N- q; K* ]! ~1 u: P
FastCGI Error
# ?& ~: P3 o3 ZThe FastCGI Handler was unable to process the request.
: `, I( r3 s5 I h$ i% d--------------------------------------------------------------------------------" L4 X" g4 P* c2 B' I% V8 }0 U
Error Details:. {# m# o) I- D# p3 ^2 M( {
Could not find entry for "php" on site 1960240566 in [Types] section. * S3 @5 { {: L
Error Number: 1413 (0x80070585). & J- E5 @$ B! w! q
Error Description: ?TD§?÷òy?£
4 _; y+ g+ [$ V7 l% ^. D% AHTTP Error 500 - Server Error.
! y' }9 _* b* EInternet Information Services (IIS)
# m8 U+ b$ C$ X" U% i' o5 D0 |7 o% f7 J$ h( ^
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
" g+ M1 c0 L7 l" {+ k/ P2 J错误3,
- C9 @$ J. ?: L' H- ]* ]. \3 S$ \----------
' g/ i$ B5 Q3 p0 @+ N. f: uFastCGI Error
4 u! x: T/ o) A& LThe FastCGI Handler was unable to process the request. 6 T; N, [, g a5 H& p k: F
Error Details:% b- M! h( ]5 Y0 c) y/ `$ {
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.& V) _5 O% M2 k" g, w6 \3 E
Internet Information Services (IIS); X5 P/ p9 u0 o" @) |
--------
3 a# U& z4 t/ N" W4 U我的PHP目录在C盘
) Q# v1 P1 g& P- q) }当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
9 T a2 d$ U! L( ~3 U) J8 v结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
0 ^+ z1 `+ L) F6 [把 C:\php\php.ini 删除,搞定!1 l$ r9 s) L8 ~0 W0 c
随后用FakeCGI调试工具才搞定原因..2 ~$ ? V) K3 X. L' P% B
感谢FakeCGI,痛斥我的坏习惯!!!
! Q& ]7 P# _" ~+ r
5 [. U4 w/ `3 w8 F2 ^
' o* t3 S7 |2 v( r% n. Y/ M% {* s: I% o
: M5 N/ l* e) H- {# E7 v
, i6 x- q9 s# E! ?) W( \, [+ N9 m) iPHP5.3.0特除配置
" [3 k9 H$ b/ G% c8 U$ q! P* H2 X一,如何正确调整上传附件大小限制?
5 h. p# k. S8 N, A$ b! A- g5 h修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:/ k7 M( s$ W- I, Y1 k% U7 M
1. post_max_size =10M
8 x. b6 z! N6 Q8 E6 a( ~! F表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
: I7 o8 z$ {, X+ c7 x& W& ~0 m限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等... p: |- r! e8 D3 i+ t m m2 f
2.file_uploads = On ( v6 }% b; \- W' N4 [9 n: {
是否允许上传文件,如果为OFF您将不能上传文件.$ `4 s2 Q j; K$ ?$ u, ]
3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\" n( \5 S% z& t4 `- s- V5 z
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.
& h2 T8 G; ]* q! F% X7 e% O4.upload_max_filesize =2M
# c: O. G1 H! S0 w1 g' A最大上传文件大小,此项针对上传文件时单个文件的大小.
" y2 H& b' ?# n( }( k2 r与post_max_size之间的关系:& {! Q* _0 P( J8 }$ ?& p. |
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.; ^, U" B) ~0 N0 U- S
修改之后一定要重启 Web 服务。
7 }" V" s3 L- o9 T3 O/ [/ {注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.) j& O( o6 O* F9 U: C' B+ \
二,EXIF信息服务器配置说明:9 X# r. Q+ P% x2 p) x' V% \
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
4 Y& R& L0 H, e6 H2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前4 z6 o- N2 D- D1 h/ _
3.找到[exif]段,把下面语句的分号去掉。+ W) p$ u/ {2 y9 {
;exif.encode_unicode = ISO-8859-15
- X! j+ U# j8 W6 H;exif.decode_unicode_motorola = UCS-2BE
. F$ Y! ]; W* ?4 Z1 z, R;exif.decode_unicode_intel = UCS-2LE2 D8 d" f! o5 A# H( ?/ B0 Z
;exif.encode_jis =
9 W, e& S2 M. V+ C6 e;exif.decode_jis_motorola = JIS
$ z$ S4 W& z" {6 q" S- _0 W;exif.decode_jis_intel = JIS9 } {6 I2 [: v2 D
PS:
5 ~, ]: n8 }+ \% R. l+ n安装版PHP的方法: 1 q; V1 d& s, g5 j- r
点击NEXT
+ K' A5 c7 o7 L# i, J- i# h# V/ r( X
打上勾同意( i0 q9 u# u0 L6 J# }5 } ~
1 L6 O' C/ \' l8 ?, S出现安装路径,默认路径,点击"Next"
! {& V/ Z$ G* I2 w
" C5 S* a( s2 n" L2 K3 @3 @0 E- ~在这里选择:IIS FastCGI,再点击Next
6 P0 o9 w& a1 B1 F, P; [
( F& A% J, V0 s% B然后在模块里选上
! v* D u+ {8 ^mysql
6 Q4 z7 H, _& F& j, FGD25 K, h& r7 Z7 u9 H
Multibyte String
' ~2 B5 ^1 K* }" p; c _6 dmcrypt# x2 Y; H; b! h# A" s3 X" U
之后点击"Next",安装成功! # {2 j' B, @2 g+ F' z0 `" a
) B# C* V; o0 d* W
" p1 W- U& o9 n2 _# v. n, ^
o- D- p# T& V7 q, ?待续: |
|