- 注册时间
- 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的完整方法6 `, ?+ ?3 J4 s& _! U7 l5 X
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP4 F1 L0 M+ L! @. a
PS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.09 q2 S- M0 _2 I+ f! 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安装方法我记录下来,其中包括出现的错误.2 E8 X; h( J/ `. a) M$ D4 A
1.下载 FastCGI For IIS6 / j9 i$ ^% J5 J4 x. ]
fcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)% x; `1 V2 }8 H0 u/ {0 k1 Y6 g) l
下载:http://www.iis.net/extensions/FastCGI,选择: x861 s3 \9 t5 H; `4 _. z' H& z
* C5 I! {$ r. @9 b& q. r
. k$ q: P0 [& _4 T/ B, u, @$ {
, R' w7 \" P: ?; G6 Y3 ]或者直接下载:http://go.microsoft.com/?linkid=9655696
" |# U5 x" C# T# x7 H3 H1 J ! s4 f7 x) l) p
下载之后,双击运行进行安装。; [1 a# b3 k7 z5 Z( p* X/ w& }7 c! k
(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx ) G6 l: Z5 l) Y- v' r9 [# n( H
/ ?9 d9 K& l8 A9 [5 ?$ }/ N. X9 P
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:
: J% s" f) ~, ?$ \; d% f5 e! _6 Z2 A) `, L
9 G9 P0 v) j7 t/ }
' z2 @' d% f4 _8 ^- a& P. ]) n7 O同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
' V& g, }$ T! E4 I. u
% G# c& w4 B+ B6 Z m8 F
- r% S, }' I' G4 q
, i) V. q" H4 _5 M$ \2.下载 PHP5.3.0 Windows 版
" G2 M* L# z5 h* W' ~: P! n( f由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!
+ Z6 ?' V; x1 ^& L6 Y. L新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,8 W; j7 N7 G6 ^' \8 |
选择:PHP 5.3 (5.3.0), p1 R2 r4 X# A. T4 g
VC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
n. w! L( B6 s8 }+ |sha1: f049c806744855e4420844d47e051949fcf06661* }4 J/ m& [2 f3 ?2 m
下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:
5 ^. W4 X2 _4 G! C
2 h# n! _( \# M" ^! D1 ~ i# X9 x! R3 z5 }* y M! R
3. 注册 PHP 到 FastCGI
$ U1 V6 W3 }& g
" g8 H$ q* S/ M& v8 t打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。/ L9 o8 }$ m/ g. m7 _& H
; This is the configuration file for the FastCGI handler for IIS 6.0.
6 B1 d6 Q4 _& P7 S' E# }; The FastCGI handler will look for this file in the same directory as) S: ~/ X) R' _/ Q+ \. N* P7 b
; fcgiext.dll. By default, the FastCGI installer will place this file into; v7 g: G. H( X! b) ?* p* V# H
; the %windir%\system32\inetsrv directory.
8 w0 Y U: x. Q" r/ M* E5 P* x
& @& U2 z, P* a我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 ' u* m- n3 O7 O/ e
8 C0 ?0 E) G: \7 y在 [Types] 下添加以下配置: B) I6 N E" O0 A, Y
[Types]
' p- l, y/ A3 I: u& v6 r* L! Y4 @- K- S. O/ F
php=PHP1 F) q0 [3 m) h1 K. z, S
[PHP]2 N" t7 M& {' ]
ExePath=X:\Server_Core\PHP\php-cgi.exe
8 w8 T0 a% E6 M2 H s4 ?) g4 ?9 d这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)
3 }6 ~ `! l$ I- d1 ^
+ B% j8 c6 i( K. q9 h4. 配置 php.ini
$ a C3 G: b; Y/ i8 q将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini % \& S6 M: a& x) r& i
找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面
- u; E& U! T& g$ |. G[Date]
) R* F+ Y' m4 h' B1 h" U; Defines the default timezone used by the date functions
! Q' Q8 m$ j' C; K Y; http://php.net/date.timezone, Q6 n" \' {/ r% \& L: [
; date.timezone =
7 m8 x/ V3 f( ]6 m2 Y更改为并去除前面的“;”:
% G, u/ d. R, w; J) K7 p[Date]+ e$ \8 N% `' a
; Defines the default timezone used by the date functions" `# [! I, U9 b# R8 G0 o+ c9 `; O
; http://php.net/date.timezone- f2 B, y7 J; M3 a# Q! s4 U+ w- [
date.timezone = Asia/Shanghai7 x4 }, N7 k3 ?; _
如果不改以上的date.timezone可能打开网页会提示500错误: @& @) o$ T+ e @# ~) Q! o! X- q
找到) r9 j& n$ N: Q! ~
; On windows:
3 J+ N" \% X: F9 z. I; extension_dir = "ext"
* r( I" R1 n, y1 P7 e7 L改为
" u' \) W& v3 f) M5 T- o+ D8 [; On windows:' s7 I+ h, G9 U1 ^
extension_dir = "X:\Server_Core\PHP\ext" 0 c+ `* G8 H! M$ I$ P! Q' M
4 H9 I K2 w# k8 }找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1 ! `+ [) m* K; T' V# d- \
如下图:+ r6 R4 M7 K A
. a$ P( ^# m. y
# g1 L) D x2 v7 e. {$ \) ~0 ]4 _找到:short_open_tag= Off;改为
0 T/ V" l% Z/ Z7 [2 K short_open_tag= On/ R+ L) T& @' e! D1 a6 R* v! \
" I) u& P7 d; w! t; x至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是' }# e5 J' ?4 [( Z
;extension=php_bz2.dll' R/ w: [" ^% s$ M" I
;extension=php_curl.dll
C1 F: A' E4 \* @5 E;extension=php_dba.dll
- k; H% p0 j# g5 ]' Z+ ` bextension=php_mbstring.dll
/ o. R* B U- W2 l4 D/ Bextension=php_exif.dll
, O8 c) f) h0 u;extension=php_fileinfo.dll
% F% V$ M! A) S, u9 Aextension=php_gd2.dll1 n8 {2 _* R. J1 G
;extension=php_gettext.dll4 n: m: g) L5 F8 b/ b0 q# Z
;extension=php_gmp.dll9 A9 w$ B" G0 F- L. e1 d# U
;extension=php_intl.dll+ k. }# f* m2 c1 `$ [. X$ S5 a W
;extension=php_imap.dll
. i( G; S/ b% m- |; Z" F;extension=php_interbase.dll0 y; R! _% W+ T/ Q
extension=php_ldap.dll
4 F- G# Z' v& S/ C;extension=php_ming.dll% f0 _# }- l& A l" y4 T& B. i4 S/ g
;extension=php_mssql.dll y: B0 w; F/ C: j
extension=php_mysql.dll' i& b! ?) c. w+ h; y' [
extension=php_mysqli.dll6 Q* b$ R, f9 [
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
$ I) M% f7 [8 D6 p* L;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client2 o. B' A2 A; X9 B' J3 d
;extension=php_openssl.dll
# E" ]! ]5 k4 Z) N# c;extension=php_pdo_firebird.dll
) `4 `2 X: q0 b' A" M z;extension=php_pdo_mssql.dll
4 h& ~- a" l. W1 A3 z3 r;extension=php_pdo_mysql.dll; I) T# K$ y) s3 H- ]
;extension=php_pdo_oci.dll
8 D7 i9 O5 f# t1 ?$ V. a;extension=php_pdo_odbc.dll
* W, X. U! L- h( [ {/ Q, a;extension=php_pdo_pgsql.dll, |3 O( J7 q9 B* l
;extension=php_pdo_sqlite.dll
|( \% M! }- r7 L;extension=php_pgsql.dll$ e$ I! p3 }+ Q* Q
;extension=php_phar.dll, ~, W O+ H8 i9 z/ A! J1 n; c
;extension=php_pspell.dll- s+ }, {/ M1 L* q; h$ J ?' a
;extension=php_shmop.dll, J$ _6 h4 X g1 J) Z. }! q. S
;extension=php_snmp.dll" W. N6 L* v( J; N4 S4 I7 E
;extension=php_soap.dll
1 m: b# r: h; U: l- U;extension=php_sockets.dll
( Y' n. e% I- D; i5 }4 j5 Z;extension=php_sqlite.dll
$ [1 ?% H# L! B4 M8 X;extension=php_sqlite3.dll% G' a& b0 d4 S3 C. \
;extension=php_sybase_ct.dll
1 N& H/ j( `1 [# X( w) [;extension=php_tidy.dll; U3 s" C4 ]$ Y* [$ n- s6 X t
;extension=php_xmlrpc.dll
; I0 a' u+ @3 |! K# F% w. A2 q1 X# p;extension=php_xsl.dll
5 W) e$ A K& X: l( M0 p;extension=php_zip.dll s+ W1 j( Z1 C: H! ^
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)
7 X7 ]% N' ^ k, ?) z保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!' z' w$ F8 b7 P1 t. j
: Z; t6 p4 D4 G9 R3 ~* K" x E
7 w# @1 G% P8 ?3 }; o [+ P/ @
5. 配置网站 |4 b6 k. K; ~- Q
: x8 n, O7 F1 N" @2 B; ~! b
打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图
- w" D) ^7 c4 |# Y J5 s% V6 @- t& G- o2 d T1 _: l. a
O' R7 ^8 }4 q! k8 f* {/ u
# r# `; S* d0 n( R1 X
4 y/ I |" w; j+ R
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
+ t( t$ D' x/ u; R" U4 H
, G" s2 Q0 a7 @; [: m7 ?, B' S1 z6. 写个 php 测试下吧
' A* K5 e% z* s. C# a; S' O# b3 o/ G6 U( o9 n+ K* k' T
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!
. _% S$ j0 J) K/ U+ v* C& w
% d( M# p8 u- a$ h
! l* G! B7 X% _1 j* E C2 T$ F3 j. T: |, \4 H
测试是否安装成功!
) V' U& V( f! R: N) D& o4 }建立一个网站,phpinfo.php文件内容为:
! q$ c. h. e R文件:phpinfo.php
$ t, N. t3 k* b9 x; H<?php9 x% {7 N( q. s: N7 o% n, m1 }, c
phpinfo();
' Y2 Q1 I/ |7 g2 V+ L2 u* o?>
$ X8 P9 ~* f) \. e$ R
. k! z8 ]3 |2 g看到类似以下效果说明你的服务器可以跑 php 了。+ E+ X! H# z2 d# d% L" y
$ @4 s$ g& i4 G @0 X6 Z/ I6 D
安装过程出现小插曲,如果运行测试文件出现如下提示:
: R& H( A8 n) H7 Z先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:9 C+ K/ r. P; V T1 [
错误1,
- J( }& T2 i6 ~8 X4 q6 ^fastcgi error- H* d. L! u5 C) p) J
the fastcgi handler was unable to process the request. 7 I" r* x& y/ x9 i8 x# D
--------------------------------------------------------------------------------) `8 o' b) Z% Z# I* C
error details:
, H: x9 `, \ ]error number: 5 (0x80070005). : X5 L+ j7 p2 ?3 p# g; c9 ^
error description: 拒绝访问。
- K2 K5 m7 k' \3 j) G3 }# Bhttp error 500 - server error.
1 O: O% X( p& `% f% e; Yinternet information services (iis)6 `7 Y8 ?/ J* ^0 e$ |
这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.
% i$ ]9 b: C. o$ o9 x6 W j
" O8 h5 z8 d) o9 j- x错误2,
% [( M0 h2 y6 j: v NFastCGI Error4 }: e/ r/ a8 Y: e) s
The FastCGI Handler was unable to process the request.
- Z! N+ v4 I6 }; k. }- U3 s--------------------------------------------------------------------------------
* D0 h/ ]( }+ a* x9 ^8 ]1 AError Details:+ r' J: m6 W% P# h) x3 W
Could not find entry for "php" on site 1960240566 in [Types] section.
% Q4 @/ M% q/ jError Number: 1413 (0x80070585). ( c J8 i+ f l
Error Description: ?TD§?÷òy?£ d( |0 C; w7 p+ v. P- W: r( \
HTTP Error 500 - Server Error.
0 ~9 s6 ^+ ]& BInternet Information Services (IIS) 0 J) J% B+ l. a: g
( i" q4 \/ U& H& Y$ Z) V1 f
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
$ g" f) Q" }, O7 O错误3,6 l; |5 E3 c3 L- e: G* C
----------
+ V. W2 P5 i& R" \6 x' b7 vFastCGI Error
" g/ ?0 z1 H4 ^3 g5 x, uThe FastCGI Handler was unable to process the request. % k8 |$ y6 N5 y& k6 n
Error Details:
' Q5 c; S- K( Q$ Z- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.
0 Y: B4 @$ w6 s* PInternet Information Services (IIS)
3 G K7 K ~( @! Z: r! M6 p--------
- p4 m( b& `" a1 \: P0 R我的PHP目录在C盘
5 _" L/ y+ a( C% H, U c) I当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...3 C3 P7 M- u- q
结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
/ `; ~ T6 A7 Y# x把 C:\php\php.ini 删除,搞定!
+ j; x% Z2 S/ F8 b随后用FakeCGI调试工具才搞定原因..
K9 G% W2 i5 A) N# D8 h( x" E感谢FakeCGI,痛斥我的坏习惯!!!
" Q5 \' K" O) x: P( \( D
) ] r% h( Y+ E: X% U9 z, o& z" N$ Z2 D
" a$ |+ V' h7 X/ `8 ?0 o( H7 C. c: F
: \" E z* d1 w4 E4 H$ D5 i, _3 N2 d" |/ k5 h
PHP5.3.0特除配置
' O/ T5 V& c* }5 a! T6 P5 w一,如何正确调整上传附件大小限制?
2 c2 s5 K' t+ {& X: o修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:
" ]( \+ V \: i/ n7 T1. post_max_size =10M 3 C, t+ ^) [' W4 Q! z1 O2 _# Q, I
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
6 I7 X+ m% l5 w: q5 O限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
; f5 l" C& K, S9 J: C( H2.file_uploads = On
$ t: }7 r1 R" X( b6 [; S6 @5 Y是否允许上传文件,如果为OFF您将不能上传文件.
" G9 |5 J% e3 X$ b$ s" }. L3 o3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\" : w! C6 ^# L6 z, z5 v
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.+ L" l+ {$ N! ?: H
4.upload_max_filesize =2M ( z E. {5 X7 N' S# U
最大上传文件大小,此项针对上传文件时单个文件的大小.3 F; R' G+ y6 X5 i: f) I
与post_max_size之间的关系:& o7 P0 r2 e3 \4 k; z7 E
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
$ ]6 c3 l' F8 G, [( |修改之后一定要重启 Web 服务。$ H D: }6 r v3 k/ |0 W
注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.
. L- Y/ X! z* @0 P! G% m8 M二,EXIF信息服务器配置说明:
" @/ s1 {6 p7 h* l1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
6 ~) @7 d# |) k/ h2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
) A" k# c& M% ]" V7 c3.找到[exif]段,把下面语句的分号去掉。
7 B3 j+ p; ^2 J7 f5 Q* l6 H;exif.encode_unicode = ISO-8859-15! _# W" S: N+ J" c Z" J$ m
;exif.decode_unicode_motorola = UCS-2BE
, Q" m0 \8 b# T# j9 S# q/ F9 I" w;exif.decode_unicode_intel = UCS-2LE4 O: q9 @2 O( r4 Y
;exif.encode_jis =
* {6 J! x# f" p- b' [' W;exif.decode_jis_motorola = JIS% E; a7 G- f: s3 ~
;exif.decode_jis_intel = JIS+ ~$ G) C. F9 ~2 O) L/ q4 k
PS:& w3 h+ T2 C3 l1 N0 R$ r, Y0 N
安装版PHP的方法: 
J7 q' |2 Z% k( [1 ?: q点击NEXT
& n C1 j" r ~
; ^* N* ^6 ^! t. b U% C打上勾同意
1 G3 }! H9 F+ D, T3 [
$ T& C2 {* S! ^. t% _0 m0 y出现安装路径,默认路径,点击"Next"
# l5 M' p- z$ _" K" F
# n1 Q; ?* q. @, q' R$ B在这里选择:IIS FastCGI,再点击Next
' \. {) `$ P `# x" x & J" Y; Y$ i% P9 c+ u m
然后在模块里选上# k) Q: \0 g Z
mysql! J) D2 K! i) F; X$ H
GD2
( ~- ?6 p) [ L( I. W- u8 p* bMultibyte String
- N. u' m( X, [9 [8 @mcrypt
/ {- M$ A: y- ?. r+ J* s9 I: A之后点击"Next",安装成功! $ [$ u7 B, Y8 l9 d
z9 Y1 s. _8 i# ^( o: Z
: c/ C2 j. X" B2 N5 U
' s- u& c( L6 u0 l. ^
待续: |
|