|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。0 W) X# f7 X9 Y: K& C" z
, m, X0 G. e3 Y3 ^) k# E. W2 k
0 b* b5 a% [0 r0 S+ A( |0 w
转自:动态网制作指南 www.knowsky.com5 ?) O9 v# {5 O; A
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
5 B! J& f- H. \5 @
5 [9 m1 K+ D6 K! x- Y# _ ! r+ a) N8 @4 _8 H8 G& B, B
8 O' Q( d* B4 S6 _
使用正确版本的Windows& W" [- g2 r& R: K# u
% H6 _" a4 b9 F3 m& w
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。7 \' O4 f' i; p( ^3 H3 r5 M
/ Q7 e: m3 |. P1 KApache 2:源码还是二进制?
; a) u* s# O7 ~2 V" C& H如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。2 z# x" v4 x0 R J( B0 a
9 B5 o* L9 }3 y+ _
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。! T8 x0 A. S) w8 ~' |; J
: G- M ?1 s; O+ K双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。2 e. \6 n) K) ?# j: n1 S
' o4 O4 N6 D9 p7 l) R% q3 H6 H图A
' Q8 b! y& U" w
0 q* V6 h9 u7 |3 S
. g/ @* B3 N9 P7 e: x- r2 v* _* m8 T' s/ |7 i5 m& p$ ~7 f
转自:动态网制作指南 www.knowsky.com
! L7 M9 W/ @' s$ |
Y0 X6 Q) E' T; |2 n正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。/ r1 D: }3 c% d3 h8 w: _7 a
8 @2 V- p2 @3 ^0 h
2 ~( i% r0 C1 U3 W2 c8 J--------------------------------------------------------------------------------! C) B. }* f9 Z% M/ A% k* c
. t- X0 {. z6 @1 X安装提示4 j7 [6 T+ f/ s$ S/ J
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。7 S0 t0 T, {6 d& k: x6 r
4 P( n) r" n5 M7 k$ _$ M/ E9 R3 P6 A( n
--------------------------------------------------------------------------------
7 k1 A! r8 _% w0 K" |- H
) O3 M; o5 ?% D, {% ?; _) z/ z: s1 s( J$ w4 Z; p. r
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
5 R/ i+ M' f, C8 M @
% P2 f I" T9 m' b0 C( Z然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
0 ^& F9 e; d2 L) y I4 @ : T2 J- `3 l+ u: x7 u8 `
转自:动态网制作指南 www.knowsky.com
# r ]6 @. C1 p# V. g- F9 N0 b3 V3 ^# O; k. ^4 m
color=#0066ff><html>& A* ?) J- X& H7 K7 N
<head>title=default server page</head>1 k/ E+ \5 n: l8 n6 P
<body>Default server page</body>
5 B, y* }/ d1 m4 b7 J. t</html> 6 ^5 \( g( e, n0 T0 ~
1 d$ \$ [8 a: @
让Apache 2为PHP做好准备9 K" k$ i7 H1 j7 R4 [
; L+ `( L/ `; ]& P7 w" }' f- L+ D
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。4 Q/ ?; }6 m6 g8 J& m1 i* U! H
6 r. @6 O! q# z4 |. a0 H$ t令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。3 ~: Q1 S; |2 `$ c8 s' @
* H0 `8 L `# P; s
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
) u4 j3 x9 u1 C5 x( G8 S; ]6 I5 J
0 T3 l- d6 u, b+ h% d+ a J3 t转自:动态网制作指南 www.knowsky.com
7 Q: l5 j6 T5 C6 K( k# y
4 @% u, h0 X( h; v9 Z, N1 v3 EDirectoryIndex index.html index.html.var # index.php
' Y5 _! ^% \0 M; ?
8 q/ V+ L" c7 v9 a D2 |- `为了允许Apache处理PHP页,要删除注释字符(#),变成:
" J$ A4 G5 O( W" u8 G% Z. o " Y9 ^* ~8 R$ B
DirectoryIndex index.html index.html.var index.php' P/ d3 j! [/ s6 v0 z) v9 S
3 v0 q3 K* W2 d0 E4 i4 K* q4 M! J- t4 g- R
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
7 i# V0 `% S0 F* C- z! u8 W
9 P7 D8 ]( D! b# a安装PHP2 F8 n5 E. T& |6 ?% J
& T6 I H8 ~/ i% U7 @3 a; @# ]4 g, }, O% O7 M, r, @% L; _* J' W! @
虽然可以下载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手册,它有多种语言的版本可供选择。
8 ~& R% b# b" i- D+ b2 a
0 D/ T' G" Z- n2 g5 Y" l. j& Q& | " G* l1 J9 X. X: M* c
& \! J* {! K/ B- S/ Q, Q配置Apache 2来运行PHP4
6 q7 [( l U$ g. F9 Q; P f4 d& |" i9 T' a1 S( o( o! K" N
转自:动态网制作指南 www.knowsky.com
0 K1 T$ o- @ T, p现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
5 ?6 n8 _& d7 \' A: [6 H% j
4 q8 |5 v7 b, R# _& {9 hAddType application/x-httpd-php .php
3 c6 }% a3 {6 m7 Z / J; g6 [, _: v7 ~$ P) J4 A6 I
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
. t- [0 @$ ]9 D0 D T' U2 w7 A
" u0 m& E4 @6 |2 |, h, T! Kdoc_root = c:\apache\apache2\htdocs
& D" f. ]# E( e) Q. qextension_dir = c:\php\extensions
3 R- h; S0 \8 g$ `4 r0 k8 ^. p, J+ f2 v6 isession.save_path = c:/temp5 s* D G3 ?8 ?. v0 T
! D$ A2 t+ `2 ?( Q: I' t9 c9 d在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。% W/ k- y) W& T* D( E5 K8 k
# ?* Y1 Q" c l9 h. `$ Q$ z下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
% [/ W6 a. Q$ z4 K9 G+ O: a0 X6 ?& g- ]0 {
LoadModule php4_module “c:/php/php4apache2.dll”! V- I$ n6 R& I! F( R# D9 \
* j7 a4 g! r* h0 }" g$ ?! O9 K( k0 u! G如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:* ?8 i3 E2 X. `" P2 s; m
0 E: q* Q# U% S* g& m
ScriptAlias /php/ "c:/php/"1 D+ k' y/ ?9 K' b# ~% a" B
Action application/x-httpd-php "/php/php.exe"
/ U% q9 @ Y. c V1 l% E
- i$ ^0 Z' j' P4 b& M一切都搞定了吗?
D" e, Z0 g* ~$ P& x4 K9 O; t1 R
; K R2 s$ O4 e+ ^6 B4 k+ U" b$ x' C转自:动态网制作指南 www.knowsky.com
. _# o1 \% d% V8 K6 I5 | p
, a$ A: b4 a, M, B$ {4 i保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?: \- r) k* D* m$ J' Q. Y) c" F
1 X$ r3 `2 m/ B9 d `# [要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
5 u! L" m+ }: F: `4 ]# {+ A ( k9 b$ c. q, n( w
apache –k start
( r8 l" K5 B+ s8 ^* M 2 f& z+ e- a; E- Q. e
另外,如果Apache正在运行,可用以下命令重新启动它:5 F" C! I9 }' g8 u8 }. `
* j' U9 @8 W0 q/ S! p$ a
apache –k restart
* f1 |( T6 F$ ^" I- l
+ }( Z: u; N1 D! Q$ q( o6 c9 ?从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。& G2 i# q* i! K. w/ J( y( t
2 w+ e/ f/ ]6 J
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:! b7 \! k$ c0 |4 H
! V0 x1 ^5 w: J# E/ i% h' {<? phpinfo(); ?>
3 V& T; Q7 Y9 I/ ]8 Y : a+ I$ z' Z6 a5 ~. J7 m9 f0 g
将文件保存到主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。8 }, U* f8 P7 u6 V, r2 K
& b( o7 u% y/ P% P+ F
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
; C9 E0 |1 p* v3 l7 R
. U1 n t9 y( W4 h(出处:百当网络学院) |
|