|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。7 T, ?0 F" Q/ W G
2 a }& E$ B+ j. f9 }( x% [, v
转自:动态网制作指南 www.knowsky.com
h1 z7 _$ @3 [+ \在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
+ \' ^7 i: E& a: Q
) Q7 s* Z, P1 x. ^; s) Y: z r. @+ V: L4 Z- |' z6 [
" j- y/ q5 b5 P( b, M
使用正确版本的Windows
! ~) N0 T0 L* k' A* z7 Q. _
/ v$ h# k8 h& J0 q首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
! _$ y* y% @/ k8 g5 S8 Y/ k/ [ V$ ?* Z/ q3 k
Apache 2:源码还是二进制?
" c. l+ ^" e3 u1 ?! y3 [: Y如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。6 |) I! I0 A1 s3 g* }' Z
" \5 {' U# F5 g+ `) Q
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。8 k) [9 a6 e$ d+ r" E- g3 n8 I. E
3 ~5 z& z$ ]" p/ M! }
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
. c p. F( v6 \- U5 v4 Q
5 J5 L. R; v7 G5 ?# X图A
, r, N( f5 X% i! v8 Z7 A
) V$ f4 U+ B& r u+ |
8 b* g5 H1 b; X7 e. g* A2 w% G( p7 E$ S( f& t9 d3 D
转自:动态网制作指南 www.knowsky.com
4 M* R6 R Q" @: x: B: t4 K
4 Z: g. `0 n# |! _1 @4 {# h正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。: J! Q1 H4 k2 G! V- s) @- B
7 }7 [9 ~" \. v& m- n6 s
7 P9 i# G' _# l: x
--------------------------------------------------------------------------------
, E8 X% w, ^% z1 q; m7 Z1 ~6 A7 p3 a" S3 X- G" [# G( Z
安装提示
; s- F i. c! A7 o* c/ X建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
6 q, W. c# Y8 {5 d4 H5 g a. s6 {9 F
3 Q* ?6 B+ L/ q7 w7 @" x
--------------------------------------------------------------------------------% k/ B! k) q H* Z
, G, g- E$ \5 e0 W' N" J. l
- P; r8 ~" {2 R" ~稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
$ H* c$ v; n( T' V5 M4 s' ~: Z2 v" w4 L5 s/ `) h; K# G
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:0 D- Y' A( c& H0 A7 M
" \! _+ |6 G% P! S- l转自:动态网制作指南 www.knowsky.com
$ @# S; |" ]9 j: Q, X4 N; c! H" Y5 N, b- Y- @/ A& d+ g: q
color=#0066ff><html>' ], F" i( G R, L8 I
<head>title=default server page</head>0 U6 S* ?$ i6 G5 q
<body>Default server page</body>+ q! p9 R, u7 g2 Q$ a; l: ]
</html>
! w$ z% L' r0 t8 X9 i+ o* n4 j0 H" m0 o7 R5 ~6 Z: d
让Apache 2为PHP做好准备
! S7 c/ s$ d; y, ?' d5 m6 b' G6 Q- S/ k! ], c1 U- \
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。. p0 ], k9 b! l u/ J) K
+ K+ t3 D8 @* S% X2 z
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。9 y' x9 v& A/ g" s! S" `! o0 w( G
$ L4 }7 r i. S6 {) YApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
$ F I$ w0 y, ~9 }) q, N* B V0 t5 Z" K% C, S5 o
转自:动态网制作指南 www.knowsky.com4 T* [9 a3 t6 ?8 C
2 W- p3 Y* V6 i/ M) k+ V9 y5 h
DirectoryIndex index.html index.html.var # index.php
3 ^- a4 q( x5 R( g
/ B# A8 g4 h4 A/ u为了允许Apache处理PHP页,要删除注释字符(#),变成:5 X Z9 D4 O. S, R% K
6 ?: A' I1 b9 O& f rDirectoryIndex index.html index.html.var index.php
1 j' @% f* S6 r ^6 Y" d
. L, Q) h, x7 D3 s" Z
6 x' \. Q- P0 t- ~还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。7 t4 x; F6 I% c, |! @9 y1 K, x1 _
' _8 w8 m, d0 Q安装PHP5 n0 m! M/ B. Y$ z7 U
% b* e7 k$ W( ^2 E, u; F9 Y! {: G- m9 r; p3 c$ u0 ?
虽然可以下载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手册,它有多种语言的版本可供选择。
' G& b. X) w0 J9 m4 b, n, W6 I/ \7 J3 m: u# a( H; ^- U% S6 ]1 k
+ F' O8 p% O: C2 U: Y
' W0 ?! V! q" ~: f% M0 S! M. o配置Apache 2来运行PHP4
! @3 a9 N2 ?0 [8 y+ ^# g* {
" M% f+ @3 ~$ ~& K9 r4 A转自:动态网制作指南 www.knowsky.com) H" i( }8 [! u& H
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
7 W$ k0 f% K$ _# ?* R* a6 k 2 |- ~/ h7 }! G2 B& K4 ?) a9 H& c
AddType application/x-httpd-php .php( i8 d7 E! a5 m# b$ X
1 X0 ^ |, c! Z7 V x将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
- C* z# C/ O# z 4 x: e+ B1 S ^" A' R5 m
doc_root = c:\apache\apache2\htdocs
/ R; \0 f) m- L# V5 s& \! Zextension_dir = c:\php\extensions! |3 O4 o, O( K; D% A
session.save_path = c:/temp' S* f7 q# g1 o) R
^: J) B* W/ O9 ^/ n+ q
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
& e3 L5 f$ j- p
! K5 M1 G( x) u" o* x下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: + a) r E4 j) A, a
' T2 D) @; ?, @- N5 m/ mLoadModule php4_module “c:/php/php4apache2.dll”( U8 C- ~; h. f* V2 E! g u0 Y
. f2 @; d7 R" q" g; Y7 k9 P
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:3 |; B' o9 E, p* ~$ C |
: }9 o* D6 Z" _% X3 o1 ZScriptAlias /php/ "c:/php/"4 t' z3 m! L+ l+ W+ v
Action application/x-httpd-php "/php/php.exe"
% `3 m6 X( b) ^% c2 s/ w5 [6 C4 B9 S/ Q6 F6 c5 t3 B) H
一切都搞定了吗? E* n- j1 E& y1 J( E9 S
0 `! s2 [& e- F( K& N/ M. e
转自:动态网制作指南 www.knowsky.com4 v4 [! |, h/ n- O% ~
5 X% Z: M' b& a# K. W, K- g* ^
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?" ^; L* ^4 r* _
. c0 s1 ^, o! q. v要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:1 k9 |- s( m( I( v, Y' C3 |: _# c
" O1 F5 t+ a7 D$ _apache –k start
* V9 @. E/ U B+ Y/ J# f, Q5 { ) U% G. A% c& s4 T! q0 A
另外,如果Apache正在运行,可用以下命令重新启动它:
" a( }. L% L+ t6 l
9 _1 B" I! P: B9 B# H" X( }* p2 n4 hapache –k restart
- i0 z5 y! K8 l4 b: K" R % V) J$ i4 p$ R* J# @ ~ p
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
" I. n% r# m( R. j, v* {. D- n8 o0 j
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
& _* I5 ?" Y: A3 X Z
0 s8 W W4 E- N/ G5 ?$ T<? phpinfo(); ?>
6 N) T, M* k- c; J: X8 A c- A/ n$ G, K0 {
0 ]3 v4 K+ S0 ^" |将文件保存到主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。$ L2 l" B8 l h5 Z0 d
, R- @+ M4 L. R2 t+ ^
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
; R) ~7 G1 E) P% f/ Q) H! K
- f) [9 f! \, R& H( E% V(出处:百当网络学院) |
|