- 注册时间
- 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 _' T8 V8 d9 {1 u
在IIS6.0下安装Fastcgi+PHP来运行PHP程序(未装alpha),终于实现手工配置 IIS 6 下以 FastCGI 跑 PHP
6 n) l" \( | E, r& Q9 \4 m& ?6 `PS:微软提升PHP在IIS下的性能 FastCGI Extension for IIS6.01 {6 s) ^+ z* z( }2 q
微软已经和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 B+ T; `* r# e1.下载 FastCGI For IIS6
/ _: N% c* N6 Z; V7 rfcgisetup32.msi(FastCGI Extension for IIS 6.0 x86)6 I" l: ?/ i' f& V" W6 m1 I* V
下载:http://www.iis.net/extensions/FastCGI,选择: x86
6 _2 \, z/ `1 C+ C# r" j7 o8 e# v/ F- J& s8 u) q- W
2 [4 q) W6 a2 F. E# H
$ F* S' i" [9 S" S" Z
或者直接下载:http://go.microsoft.com/?linkid=9655696
: o$ b o2 @# n3 S* i 8 f/ `) o n/ U! h
下载之后,双击运行进行安装。( P) x, C' m- j7 u/ A7 l* M
(FakeCGI调试工具(备用):下载fake.zip http://blogs.iis.net/rickjames/attachment/1563148.ashx )
$ ?" k$ l0 y" m2 }2 j y* s7 ?! C, r& b) U4 v
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:# _% O5 s* ]1 }3 A! ?) B3 o
& D- Z. x0 M; m# y" c+ t
+ `/ h" o3 T" {: l7 |+ X5 Z- X- y' u
. [0 l/ d0 R: `! G同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。' g& Z# u8 P& a
1 @ j8 Z2 P' p3 `5 ?, ]" C( [9 h
% g4 [/ w1 O4 [. l7 L k% G) A3 X0 p' E$ Z, v R+ x
2.下载 PHP5.3.0 Windows 版
8 m( y \1 `0 `$ t# b( l/ r' m由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!
# E) w- P: @* Y" o$ U/ C新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,$ b' w5 |; Z7 X- \7 v( E
选择:PHP 5.3 (5.3.0)
% I/ \) L3 e' U+ I+ k9 X7 g5 rVC9 x86 Thread Safe (2009-Jun-30 08:52:56) Zip [13.54MB]
. L" X D. X" c+ w2 K7 r! Fsha1: f049c806744855e4420844d47e051949fcf06661( d( i8 w5 ^9 y$ I. \/ w$ |
下载 .zip 格式的版本,解压缩下载的 php-5.3.0-Win32-VC9-x86.zip 文件,并将其复制到:X:\Server_Core\php目录(你可以根据自己的意愿解压到别的目录。),并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:6 L9 c; K; t2 r1 z. R
& Y- r' f3 M0 O* ~: h/ I
8 ^ K# s+ }! f 3. 注册 PHP 到 FastCGI 7 D7 ~3 W5 I6 O1 c1 B
2 b/ Q5 s5 W. E) c* V- O! o2 f4 m7 _打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。8 v# z% ^' |" T
; This is the configuration file for the FastCGI handler for IIS 6.0.: Z2 r$ a7 }, P
; The FastCGI handler will look for this file in the same directory as' B" r: X; Y3 ?; ^, Z9 v& Y
; fcgiext.dll. By default, the FastCGI installer will place this file into
* T H k; t9 F+ m2 h; the %windir%\system32\inetsrv directory. 6 e$ X8 W1 x$ D: X+ W2 _. N
* o; i' o/ s( b4 ]9 K8 L1 L5 X
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 ! a# I# [7 h2 u6 q8 E! c1 ?, G, i8 T
, p& s7 Z$ f; y* u
在 [Types] 下添加以下配置: 7 C! ?) }8 k, U6 [
[Types]
/ q$ d' V. k+ o) f- z$ i1 m4 ]6 f [7 |6 H
php=PHP
( P% C" s3 _/ P& w: z[PHP]* S! k9 @% F+ w- _# w$ l
ExePath=X:\Server_Core\PHP\php-cgi.exe/ f5 ]6 i2 _, x, N* n
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)3 L5 B" F6 t8 z" C
) h; ~0 W0 M+ M2 m/ s4 c4. 配置 php.ini 7 ?$ A: r" |4 d @ H8 z
将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini 7 m$ u3 L( Z: @ O! H) E/ A( p
找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面
8 I4 U% n; K5 \( V& h[Date]
$ h0 q& q; W9 ~& Y; Defines the default timezone used by the date functions
7 B, F& A' t# v: C; http://php.net/date.timezone
# V% T, n6 j0 ?- E; date.timezone =
4 W: T3 w- C, A. N3 O7 ]8 _6 J更改为并去除前面的“;”:
8 @. i6 X6 D* f# a( N[Date]
- z1 }4 i5 B H7 W9 y S; Defines the default timezone used by the date functions2 j Z5 F; c, L- J( ?# Z2 q) m
; http://php.net/date.timezone
+ Q8 ^5 L' U1 p1 m# D5 j) t% zdate.timezone = Asia/Shanghai
- `" @$ W1 k* s; a# t: j如果不改以上的date.timezone可能打开网页会提示500错误
" ]: }, _3 W7 ^2 ^1 l找到
" o, j7 Y6 G5 `( y+ E/ e0 {3 X; On windows:
8 R4 K. Q5 ?* K0 H! G* j; extension_dir = "ext"$ G1 {' I7 R6 y$ X% A4 a+ q, Z
改为
9 s; ~1 a- j% `$ u" R8 k' j; On windows:0 r- S2 g1 X" p- e8 j
extension_dir = "X:\Server_Core\PHP\ext" * g* A# O) F1 P1 W/ m
0 f- m% E4 y" X/ H0 d
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1
5 p$ z) s0 [6 Q N如下图:
9 d9 ]3 m d% t x
& K6 J9 A3 l5 D5 l) M; C6 j6 L6 _6 j8 h6 k# s' P$ |/ k
找到:short_open_tag= Off;改为! n" M9 }- {. n7 a! l
short_open_tag= On4 g8 i% c! J& i9 R" @+ H. ~5 L: A
: C9 B) H; w/ g% l% S+ I+ m至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是/ q- e5 H5 ^2 |& O5 k, {
;extension=php_bz2.dll5 S0 _0 [4 k% Q. ?6 f
;extension=php_curl.dll- G; W& k" r! }9 F0 d2 I
;extension=php_dba.dll
9 G# Q; c& \# ]extension=php_mbstring.dll
1 I2 N* T' N; ?/ f- cextension=php_exif.dll4 w( g" t9 A) m2 w1 l' ?
;extension=php_fileinfo.dll
% |3 {, G1 @4 ^- mextension=php_gd2.dll" a9 a4 m& O; s, v
;extension=php_gettext.dll i2 f" f) u3 l: @! M
;extension=php_gmp.dll. D8 H; D+ y' j; A: `0 B) V* j
;extension=php_intl.dll
2 ?; k0 u: U+ x6 v6 ? D: ?;extension=php_imap.dll
8 O* ]& @8 v. z' M" d;extension=php_interbase.dll
( o! p' k) S$ D8 Iextension=php_ldap.dll
2 E S, p) ~' n; i;extension=php_ming.dll
+ _0 r* `% Q! L6 E2 z2 ?* F2 y, q; w;extension=php_mssql.dll
1 ~+ U# z2 r- P. l! n/ W. zextension=php_mysql.dll
( s' R+ E2 j9 c, I5 i1 cextension=php_mysqli.dll
% t# R/ Q+ M; c, \( E;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
# G2 j2 S i- j4 g;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
4 m+ D- D+ a$ z2 x# N! O9 T;extension=php_openssl.dll
7 B% G9 v6 z! | D;extension=php_pdo_firebird.dll7 }$ r6 ^& L# m: \3 N! N
;extension=php_pdo_mssql.dll- I9 f6 p# P" j% {& t
;extension=php_pdo_mysql.dll8 M: A) Y; g" {. B) c4 t
;extension=php_pdo_oci.dll
4 A% t' T2 J+ J3 z. E T;extension=php_pdo_odbc.dll
3 l5 |- v, [ U0 T7 {;extension=php_pdo_pgsql.dll
9 R8 S0 V, I9 ]/ M" t$ ~;extension=php_pdo_sqlite.dll+ S O$ {4 p+ q- l0 I9 b$ _& s
;extension=php_pgsql.dll
% n: j1 A ]. E2 d;extension=php_phar.dll( b8 {8 G* N& |
;extension=php_pspell.dll, v3 ~' }% G6 I9 B2 O2 |% ?
;extension=php_shmop.dll' ~: R, f2 m d5 e
;extension=php_snmp.dll
# g1 k- F1 ~: [% o) k$ _/ r4 O. I o;extension=php_soap.dll4 d5 `% u% h) e
;extension=php_sockets.dll1 M& |: V! H$ f: a$ L& L1 I
;extension=php_sqlite.dll
8 G' w9 A5 C0 i: J: g;extension=php_sqlite3.dll
2 C& p: C- m# A; ]) |;extension=php_sybase_ct.dll
& q0 V9 Z' o6 D( _! t;extension=php_tidy.dll
+ @# X/ Q6 i. N: o0 o;extension=php_xmlrpc.dll
* k- L5 S F% S0 ^: R" M;extension=php_xsl.dll
/ R. k( z( Y# e5 P0 ^7 r# y- |;extension=php_zip.dll
0 R" J9 Y; O/ y' A注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行)
+ h, I; O6 i4 E" Z% c保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错!3 G' E( n5 ^0 q$ W6 U/ P
1 |9 q9 T$ K3 ?5 M5 N0 q4 K# O
$ n8 b3 f9 A8 i5 D& \$ z
5. 配置网站 & S% B1 t+ }9 m' Y
- {" h. |( u W! z1 C4 _打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图. Y, h6 e( }* J% F# r5 q8 t
3 ]9 [# U. @+ g% H* @8 c2 E: T! [+ w O5 u7 }. l% I
' f0 L6 y! [0 f) ~$ S, g! q! e0 P4 \3 v$ m( Y; e1 _
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
& n3 B& G& [ j' V0 f
8 E9 t$ L/ K, ^- p$ d2 M0 a& ]6. 写个 php 测试下吧
' C( t$ k, h1 p5 c* {5 R0 w9 G7 P( G$ X2 n( {% {/ y; f! U
修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!4 y/ R* T" k! X& i1 m% R" O( o+ _
# h# t! P+ F2 T
6 Q5 C8 B; J, _8 n3 R! `; U; V6 Y- E" h4 Z* j$ t: l' R5 y5 e1 ?1 s
测试是否安装成功!
; |7 U0 }8 D- C建立一个网站,phpinfo.php文件内容为:
9 \; y5 ~1 B4 t' U2 T文件:phpinfo.php+ _8 c9 _" G9 ~/ _/ N# p+ N
<?php! B5 y3 T3 q; t' V
phpinfo();# J1 ^! q% p: W# V. T
?>
! Y8 X. F8 P4 c) i r1 C5 i% V2 B9 E/ r( L
看到类似以下效果说明你的服务器可以跑 php 了。
; v% j7 l6 ~+ O: r3 y1 n" u) G
( S+ \0 W* d9 e5 q9 f安装过程出现小插曲,如果运行测试文件出现如下提示:: J; I# @2 w0 d+ Y
先运行X:\Server_Core\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法:
" A6 } e r0 \9 D! R错误1,
9 A+ O1 J T! w1 @$ efastcgi error$ x" a& x* e) [2 f! l4 \
the fastcgi handler was unable to process the request.
3 W$ i* |* v& v& w) ?--------------------------------------------------------------------------------0 L% p3 w# F( k8 c
error details:
* J8 T) M t% ^1 _+ ?, G$ J C5 c) zerror number: 5 (0x80070005).
. V1 l5 P% `: c) G; berror description: 拒绝访问。
( \6 u) z3 y# ]( ehttp error 500 - server error.
4 y+ U( P8 W9 k1 qinternet information services (iis)4 T3 `$ f# c7 t/ {( x
这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.2 G+ }4 X! j4 ~: K
* S- F; P$ ]' y5 i7 l- W% N* n错误2,, N+ y; L6 }9 p
FastCGI Error
- j- M8 M4 x- V+ @6 c& AThe FastCGI Handler was unable to process the request. , I$ Z3 S8 R ~3 k) M# O/ R8 `6 {
--------------------------------------------------------------------------------* g* u, q- y1 v) u# w
Error Details:
' `. U H4 w% C0 x7 j* E; z8 MCould not find entry for "php" on site 1960240566 in [Types] section. 0 P) m2 P) J: J5 P
Error Number: 1413 (0x80070585).
5 b5 c2 Q5 H4 E/ B' B3 Z. oError Description: ?TD§?÷òy?£
/ |5 _6 c7 K6 c( mHTTP Error 500 - Server Error.
, ^# W6 K1 ~4 V. |Internet Information Services (IIS) 3 A P5 V# q+ |% D- ]
! y7 v/ d6 J ?
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
: F# e g; G- _% @% x2 D0 f错误3,
$ i, y- h h5 z- a---------- k8 S3 R9 o( z; `5 ~% L, G
FastCGI Error
8 [) J. _0 p) TThe FastCGI Handler was unable to process the request.
3 V: h3 o" j' X3 n B4 |8 TError Details:9 }2 K% f# ]5 r" I7 p0 S2 t
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error. D" _* I6 p; v# ]7 A& W* O
Internet Information Services (IIS)
6 R8 Q: E9 E5 K, h7 I--------
$ M v; P. D$ K6 Z我的PHP目录在C盘
1 N, P3 h$ I; w4 t3 R4 C6 ~0 h' ?. ]当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
4 f t- h2 v6 y O结果恰恰是C:\PHP\php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。5 I: g" T8 r3 |1 I! J
把 C:\php\php.ini 删除,搞定!
- o7 E2 F5 u" J* C随后用FakeCGI调试工具才搞定原因..( M2 p1 ^# N3 X9 d1 E
感谢FakeCGI,痛斥我的坏习惯!!!
, Z- C( }6 }9 S+ g
. X6 ~6 x) E- q+ [% P X# K8 n* B6 Z% K- o* T
+ t# h5 j' g+ h1 M6 ~9 X- v: G
! T/ V$ y/ A0 ~) d# s
$ y$ z& z0 @% z8 O# |* l3 HPHP5.3.0特除配置
9 t2 e3 u1 t* q$ J6 b一,如何正确调整上传附件大小限制?* _ `6 t- E; p& n/ e# f3 k
修改 php.ini (Windows 系统在 C:/Windows/system32 下)中的下面几项:
4 f! i R6 t$ u# J( I( `2 I1. post_max_size =10M
- K( U p) }6 M表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
1 W$ R3 g8 e# L! Z! A限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
% Y5 g3 e" J8 s Q9 I' b! F$ a2.file_uploads = On
& V P# u( _. I/ E- Q& U* r是否允许上传文件,如果为OFF您将不能上传文件.
% O1 H" u: T4 f/ M3.upload_tmp_dir = "C:\Server_Core\php\upload_tmp\"
4 ? q8 m6 M4 N$ n9 w上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.' K4 a1 W; D% S; k. b' ]
4.upload_max_filesize =2M
( t$ Z3 n2 X2 \( t" i% y7 h0 S最大上传文件大小,此项针对上传文件时单个文件的大小.
7 z# _4 m0 j" g( T2 l- [与post_max_size之间的关系:) y/ A2 M& [ f( g& u! I' `: Q: q
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个." O/ c$ ], w. N! O( {; {4 c
修改之后一定要重启 Web 服务。* r! h3 y. I5 O1 A) q& y; }
注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.
8 K" g6 {% L5 R& p( u3 S9 w二,EXIF信息服务器配置说明:3 l5 Q* T" B7 U. i& w+ @9 H" {
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
/ k& E, L2 p4 ^ h. Z2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前
- I" k! T+ k& z2 ^* f$ q2 ~3.找到[exif]段,把下面语句的分号去掉。+ s8 B' ]% W; @& u9 H
;exif.encode_unicode = ISO-8859-15& C+ D) Q! X3 y7 u5 C$ J8 T0 J
;exif.decode_unicode_motorola = UCS-2BE& {) U# J4 Y! P$ h% r
;exif.decode_unicode_intel = UCS-2LE7 z) C, Y1 \! F# @6 z, C( e
;exif.encode_jis =
) v, M, D" C5 |5 u4 G& O. };exif.decode_jis_motorola = JIS5 g2 ~. _$ L5 @
;exif.decode_jis_intel = JIS
3 \: C- z% ~6 LPS:
. \: O* @6 D0 p) t6 |安装版PHP的方法:
1 Z) v3 `" G" T. E3 |7 x点击NEXT; i! N/ v; a3 Q8 N7 C
( ^/ l/ e4 [" G打上勾同意/ r: x+ C; X2 z* K
% k5 C' A6 {1 w; a0 T出现安装路径,默认路径,点击"Next"
2 x- V3 z$ \5 j3 |8 ]# F3 K4 K
- Q1 ^7 Z: H: g, Y) n4 K在这里选择:IIS FastCGI,再点击Next+ O& g0 G9 O3 O# v% H& O
1 W- l0 } S+ p7 p
然后在模块里选上" z* t; P5 |, ]
mysql
0 [; a( J2 s. Q, n: N9 O/ vGD2. K) B3 t) L3 ?2 ?
Multibyte String
. ~ a) g& p+ h4 Zmcrypt
) G' \ d' u: X( J+ w$ N之后点击"Next",安装成功!
+ m' J+ [3 r' t0 }- @ v3 K5 R
; U' H2 Q# t5 S7 {. d0 ~* j' G
. V' Q* c- }/ i% v3 q' c3 Z% ^# k8 `# A. `, `' n1 K* o
待续: |
|