! {/ ~) ^% Z5 Y, g! C/ L$ C' | S: ? 3. 注册 PHP 到 FastCGI & ^" j1 f1 S8 H) S; t& Y# B2 s1 e4 ~! L+ t0 k
打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。 # F: w' Z1 `! W" e; This is the configuration file for the FastCGI handler for IIS 6.0.+ C: q! `- |6 n- ?0 B( I
; The FastCGI handler will look for this file in the same directory as6 |3 k( h# o( J( T
; fcgiext.dll. By default, the FastCGI installer will place this file into$ @ I. ]& ?. t0 i3 s5 Y3 U
; the %windir%\system32\inetsrv directory. 8 R- W# b& s/ Z3 L! K$ s0 {
0 W3 b# ^- j2 z! k( u) q8 C我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。 l) f ?. T& _1 u: A# f' X2 k
. i1 q( U4 Q% @, T M! |在 [Types] 下添加以下配置: 2 f T5 b8 t' k% j1 J5 n z[Types]: B& t9 `! t- [/ S
/ m0 ^5 P1 C. u. l! Cphp=PHP7 s+ L5 ?0 G c
[PHP] 8 r' U2 N+ b6 l3 _6 i( G: T2 S( DExePath=X:\Server_Core\PHP\php-cgi.exe: H, }9 d+ `2 y6 R' t
这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。) + @" s* E, G: e, y n( X7 n$ g1 o0 f3 ]: E$ G: T' v) A7 ? 4. 配置 php.ini ; ~: R, ^; M. X2 j$ ?1 p- ]2 G. S
将 X:\Server_Core\PHP\php.ini-development 复制一个,然后重命名为 X:\Server_Core\PHP\php.ini 0 D/ T6 O2 k- w7 }找到PHP安装目录下的php.ini-development并改名为php.ini文件,找到下面 ; P- e9 Q1 w+ v. ^" \[Date] & C: _6 `3 j: g, O* i; Defines the default timezone used by the date functions, B' C/ Z7 R5 b$ @! \) n
; http://php.net/date.timezone9 q5 b) K2 e9 F# L2 j O
; date.timezone = ( N$ ]6 t* |. W更改为并去除前面的“;”: ! S6 E" H6 F2 [% |+ ?3 F4 Q[Date]& j" f+ l' G# Q- F7 W. A; z
; Defines the default timezone used by the date functions * [. z, {# l4 x; http://php.net/date.timezone 5 j6 h: u3 Y4 |' S/ Z. B) ndate.timezone = Asia/Shanghai ) ~; e Z5 X( C如果不改以上的date.timezone可能打开网页会提示500错误) z/ |1 v% O3 c
找到 0 \/ t- o- J& q$ d8 {; On windows: 0 u" Q/ r: \4 R+ J; extension_dir = "ext" ! ?- K$ C& N8 ?# k0 q( I改为4 h: u+ c: E; Y$ F }4 Y
; On windows:7 E5 [; w; o# V/ a% I8 W
extension_dir = "X:\Server_Core\PHP\ext" 8 T: `4 ^8 f/ M7 f' R" \- m+ X' u0 K$ a5 i, J
找到:fastcgi.impersonate = 1;这句,把前面的;去掉, fastcgi.impersonate = 1 4 T/ l+ F8 s' x2 K1 M如下图:, r8 r" f, J8 h
9 w6 Y$ @1 }( A0 c2 r 9 J, m( J- R/ s) D. t找到:short_open_tag= Off;改为 8 l7 B) S$ E) s% N5 \+ w' U: u8 ^ short_open_tag= On 7 B$ S( L5 K2 C/ w. ?7 K" g7 B% u" r3 l/ C
至于php.ini里面的extension开启方式,根据自己所需,找到:Windows Extensions 在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)比如我的是 6 i( g2 o; E% [' D;extension=php_bz2.dll 2 V, R) b& w; C, ]; E/ v; w;extension=php_curl.dll # \3 D. \5 F* m- E;extension=php_dba.dll3 a$ h$ y7 D+ e' v4 j
extension=php_mbstring.dll+ _) }9 F' S$ N' r7 [( ^0 x
extension=php_exif.dll6 d# c* W9 [. U; H2 B" R4 v
;extension=php_fileinfo.dll 9 l1 y6 m9 |- i+ h Jextension=php_gd2.dll 0 z3 x" H5 D+ \# }! o; };extension=php_gettext.dll( k' h) ^4 \) S5 d0 ~
;extension=php_gmp.dll - S5 G9 b8 e: ~;extension=php_intl.dll 0 [2 y1 c& ~$ H;extension=php_imap.dll p. O% i' e% i3 w9 _& ];extension=php_interbase.dll9 N0 W. K4 N% k: h& u0 i* m
extension=php_ldap.dll. O: g+ Z1 \/ @; l# T2 N1 Q
;extension=php_ming.dll/ m2 R9 N M% ^9 x, i8 g1 X
;extension=php_mssql.dll ' N$ V# }. l" P( O( U% Lextension=php_mysql.dll1 X! y: v& b( U
extension=php_mysqli.dll 2 M2 r7 g4 ~ o! n p( `" b8 k; n;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client7 @) T1 h0 i! c1 v! u. o
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client# a- E4 [6 {% B8 p7 s
;extension=php_openssl.dll" R8 ~8 b/ j3 q; x; r, Q
;extension=php_pdo_firebird.dll ) g1 D- D8 l4 l3 \;extension=php_pdo_mssql.dll - }- @/ `! b3 b) @$ l! V- {9 E/ y;extension=php_pdo_mysql.dll % Q+ I G' q7 L;extension=php_pdo_oci.dll% M+ z' _ a8 V: Q6 O1 T
;extension=php_pdo_odbc.dll/ ?3 ?1 L9 }1 G1 A
;extension=php_pdo_pgsql.dll* r0 y& ~+ n3 R; W
;extension=php_pdo_sqlite.dll% G2 z ~& }# o3 c0 ]
;extension=php_pgsql.dll U/ R2 m5 {0 M% t7 ~; v2 ]% S;extension=php_phar.dll" u, S; ^4 x: i% @+ |# m
;extension=php_pspell.dll % l; Y! V( q, y" z% I;extension=php_shmop.dll3 l: U5 K; T( M! H2 }) x2 A
;extension=php_snmp.dll ! I& k [/ Y+ P+ N2 K# p m% s;extension=php_soap.dll* G* w3 g) l" N- Z/ G
;extension=php_sockets.dll * u5 b; v+ u* j8 W6 N3 @;extension=php_sqlite.dll3 k8 ?. B. L; N: ?6 N' h% x
;extension=php_sqlite3.dll/ F; t, _4 y" H, N& H
;extension=php_sybase_ct.dll $ i/ L( E R9 l) z' s) v;extension=php_tidy.dll! h/ ~! P: k( e2 x* C
;extension=php_xmlrpc.dll# }" h( i3 A4 l! }6 w
;extension=php_xsl.dll + H/ T+ w0 ~1 F3 T8 t;extension=php_zip.dll ; z- U% E: T' N注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(我的不行) 6 r& H: S) }1 @保存 php.ini 文件,并将其复制到 C:\Windows\ ,并删除 X:\Server_Core\PHP\php.ini,不删除有时IIS报500错! ( ~6 D& V( z6 v" | % \+ |+ N0 ^8 _5 L$ f7 {7 A9 S! Q% h/ G2 z1 `3 q 5. 配置网站 l5 U1 J! x8 N, ^, V# c6 p5 d) s; C' J8 n2 y
打开IIS管理器,网站上点右键-属性-主目录-配置-添加,配置如下图 * j6 Y% v, t k! R0 s: u8 Q . t9 b! Y1 M5 h2 { . }$ p1 i$ X$ n8 n: M. X# k, w G/ U+ b/ f1 c
- B; a8 l+ }5 T$ B. d- t9 f& H' ?可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll 0 a ]: B. H1 r
1 F4 b8 b E! a$ B/ {6. 写个 php 测试下吧 / W5 f2 @. L$ V4 D/ W# G
; |5 M4 l2 ^ [+ q! R3 Y修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!, Y6 V3 F& @* B# B
" j: j) F* I( r1 K
$ |) ]( O( d I