|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
* M K/ ?: ]) I+ }4 l0 H9 q/ o6 v* R: q
& {* r* \ [/ u/ o. E转自:动态网制作指南 www.knowsky.com
" _! z2 E6 v; W- I8 z7 {5 x在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
$ M/ p6 y: Y9 Q: v2 h2 A5 _9 L+ Y+ A
4 ~6 ^5 Y( F. U- j' m8 a1 c+ ?& D
7 ?7 }# X: Y" C) Y+ \* M4 a8 D使用正确版本的Windows% y0 V8 u! ~& O7 G/ V
; e9 q2 K2 S M( J) c8 M3 J4 G
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
7 y; D+ p1 C; ` j; _, I0 m* ~+ A: w8 e9 ~; x; m# q& c) H( w$ A
Apache 2:源码还是二进制?9 t7 K6 y5 U3 x2 L* }" b
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
+ h; d& O |4 ^4 k& N0 L1 i" }5 [8 k
0 t% x$ P# x2 u, f如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。& U f" z* w# a" W2 \
8 |1 U1 Z) I6 n! j) @/ z
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。1 ]5 `; W3 G& z( Z# u
$ F% D& X; O0 }, g+ J$ K图A) e1 S' V) k- P
) X$ y8 m8 h7 m) E/ W; `+ Y! w7 K: X. W& Q' I- V- t, ^! Q8 O
& F7 P* D1 I- c" y1 U* D2 [6 @
转自:动态网制作指南 www.knowsky.com
; D) v& ?" G; ?" M) y g2 P2 L0 m0 Z) Q, g, ?; ~
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
8 j% C1 [1 V( d4 y7 U" [; A P; W
7 f% N9 s/ l& N- M5 E" E0 l0 J0 i7 {8 |- X
--------------------------------------------------------------------------------
+ P2 _2 L; K+ K8 |9 x: ~" M' z
2 \$ R3 w3 e7 p9 j; i安装提示
N- M* k. {8 I4 T+ W, y- k4 P$ j7 R建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。: f- B. }4 i5 o; V) q- t% S
# ^+ s6 F; \" _+ n Y: m" Q! t
4 F1 s9 w" [; L: [$ { ]--------------------------------------------------------------------------------, \5 t% t& J7 y
, {7 E k2 O7 W) s! c
: a8 A: x* W9 ^; o( W稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。; k+ B# k. J1 O, B3 n
3 v" `! q- V4 c& w3 o
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:0 O; N& Y4 O) Z8 g
. ?0 y8 W, t5 I4 c3 k' s
转自:动态网制作指南 www.knowsky.com 1 r9 \5 o( ~2 z' h8 P
. O% F$ P) h( I" s1 {2 k! z8 E% w
color=#0066ff><html>( F4 D/ [2 R# s+ j" M+ a
<head>title=default server page</head>
9 y `9 u' @9 ?8 Y& [: x% E<body>Default server page</body>
! X% E1 ]0 _! f: m- |7 V3 X</html>
8 y/ o/ |. Z# m
1 j2 E4 J; s& _& H8 N: P让Apache 2为PHP做好准备
|9 n5 A `' T/ c
0 E3 N, c& L2 b1 `7 }% _# d# f3 k5 Z从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
2 N$ d( N) m% k* v) B! y# D6 e, h1 m6 F# ^( c( L
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。" Q0 `1 |8 L' _6 U9 G, b
! O0 Z( E; w# eApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:& L w% p$ ^) ^% l) c
) Y r1 R# B9 C转自:动态网制作指南 www.knowsky.com
0 W) q# L& u; L4 s, y 3 | U) j, b1 e" O1 E4 m' k
DirectoryIndex index.html index.html.var # index.php
5 F* L) R# P* O
3 R& _3 S `$ c为了允许Apache处理PHP页,要删除注释字符(#),变成:
, t! E8 Z4 ~! N# U! S0 x
' ^0 B: ?' E% L2 yDirectoryIndex index.html index.html.var index.php- x( s. k5 k9 O
5 K3 {' W8 d1 s2 p& @
$ }* r, g3 S: g ?& k5 V还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。, Y; V+ W) q" I
) @$ k& N2 C) @% _: t+ O安装PHP/ e3 F I- n8 i/ J2 [
, u) q2 `$ O! o+ E/ P2 L5 e8 |
) U. E. F: `5 b4 x* J$ Q( D2 |
虽然可以下载PHP的源码,但和Apache 2一样,最好直接使用二进制发行包。Apache 2可采取2种方式来运行PHP程序:通过一个CGI接口来运行(外部调用Php.exe),或者使用PHP的DLL文件在Apache的内部运行。后一种方式的速度较快。所以,针对每个版本的PHP,都会提供2个Windows二进制发行包。较小的是.msi包,它会安装CGI可执行程序Php.exe,但其中拿掉了通过Apache DLL来运行PHP脚本所需的模块。较大的.zip包则包含了所有这些东西,你可以从snaps.php.net网站的Win32区域下载它们。文件下载完毕后,把它解压到C:\Php(保留文件夹名称)。除非你有绝对的把握,请同时下载PHP手册,它有多种语言的版本可供选择。
6 T# U& e. G% K' U3 ^
1 a7 o# z9 M; e+ ~ : a; s: z8 a& k9 t6 ?& E
+ c h, [, \9 J2 J- L4 L8 R配置Apache 2来运行PHP4
! d% }' s; k# W, l5 G, O; b3 A: |( Q8 Y/ B
转自:动态网制作指南 www.knowsky.com
8 I' k5 k% s# @* o y现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:0 N, ]) j% h# l
p3 g3 P! \' J9 f3 ^/ B0 z9 RAddType application/x-httpd-php .php# g$ O# t% c' z5 k: M4 x
# L6 h1 j* a# s* ~+ a) n将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
, ]& y, F% U2 G$ E" X' v , x4 Y/ [$ M* N7 k) x
doc_root = c:\apache\apache2\htdocs
0 c$ X J- v) ]1 B8 L' m' T$ J% W0 jextension_dir = c:\php\extensions
6 F- n+ t+ O9 q7 }9 h0 ]session.save_path = c:/temp
, i, Z( Y; W- s# z; P9 q
. b8 T% P0 q: y; y+ F在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
5 `/ {/ f# J; B4 f3 d% z ~% m+ |7 s
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
1 _. `0 U. i- F# P5 \! T" {, t
' o, C% Z' D2 e, @' `! G- ELoadModule php4_module “c:/php/php4apache2.dll”
% N! ^! G) I: Q* z, S/ O ! V" d9 j* `! h, K( Z) t9 D- L& { o. m
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:' \3 O- [+ z! s5 \9 t& W, v
: p8 g7 h% @& }, G2 a: OScriptAlias /php/ "c:/php/"3 i$ S1 p3 b/ E3 ~' f. s
Action application/x-httpd-php "/php/php.exe"
$ H/ e1 B. Y# s. v5 ]* w0 U' `* _4 `: C0 @* f% \
一切都搞定了吗?
# e z! D2 [4 `/ O; V; Y$ J" y2 Q& }6 z: @' b) `
转自:动态网制作指南 www.knowsky.com
$ l+ h2 N3 t$ i, I) d) |5 n u6 J1 b3 Y3 i( X0 a) c: \
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?% c6 p7 Z% f( W$ J. x) {" n ?
- u6 i% F% r7 q$ ~' c% u9 ?% z" z2 K
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
2 ?3 {. o' y3 Y! d. B. l
- w4 q3 ~" Q) g: R- Dapache –k start# u* m+ {' I+ F5 i
9 U% M0 u! ?$ r, x( J$ O d. L% k+ f
另外,如果Apache正在运行,可用以下命令重新启动它:9 p9 {3 c' T5 A$ I$ J
3 M) W' _% o! m- k9 V+ c" P$ Mapache –k restart2 n5 M7 n1 E# M% c1 D3 {7 |6 U
( ^% d" R( ?9 R; y" Z& ~* I# j$ N从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
6 e7 ]6 d& o0 L8 {) ^' E
$ N; ]: b( n& i( L" P" K要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:* o9 I+ K2 {5 w" m
# u7 X2 p9 X4 v2 w
<? phpinfo(); ?>
8 W- P- R- P, f# j0 H 6 A- H* l ^; m8 P1 H9 H1 [4 v
将文件保存到主Web服务器目录(C:\InstallDirectory\Apache\Apache2\Htdocs),用浏览器访问http://localhost/phptest.php。如果一切正常,应该看到一个含有PHP徽标的网页,其中包含大量设置和其他信息。要知道PHP当前是通过CGI来运行,还是在Apache内部运行,可以检查一下环境变量orig_script_name。如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe。如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php。
5 {4 G2 \/ ]( e! n' z& ?2 I- t# [$ u+ H
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。6 P/ x. B3 A5 C
U% W) g* z: O) S(出处:百当网络学院) |
|