|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
( L/ v7 J( w/ Q! \
* x: e: m, `3 X5 L# i. x
! [ J+ m- c/ l% X# R7 O转自:动态网制作指南 www.knowsky.com
5 m" C9 y; G. ^在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
2 o( t# ]+ l$ L. j3 y+ N1 N# i
b! ?# F6 {& N& I* c6 k & w: X. O S- p; N( G; f
0 B: B+ z0 n# K/ r3 b0 `. C$ r' E! O) c
使用正确版本的Windows3 O2 t7 }+ ^0 T$ P3 P' ]
/ t/ {8 C. U- P" }8 e首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。9 j9 T* p; r$ F4 m2 r+ p
$ w3 [: m7 Y' y7 }3 V
Apache 2:源码还是二进制?
5 S6 V0 |7 \* P" ?如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。: D) u- o& F+ k. f. m2 j4 ]
( ]- L& ~* L7 R. Z
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。8 I6 j2 ^( a+ [( n+ E+ X
3 {4 t2 W, Z% s I8 @8 X双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
8 \ S* Y- n5 ]! n3 x) p! E, S9 F @4 t1 S$ _' Q$ n: f( H ?
图A) f6 L3 l+ T( m2 {$ y* ~
, x) {. P3 l+ B9 I
- X6 U+ l$ U: Z: o
! b4 g: W" @, f& T
转自:动态网制作指南 www.knowsky.com! V3 [( P: y4 _& w$ G. y9 V- O
3 f4 \3 l6 N2 ~6 Y1 c: N; b正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
) t5 ^% e: R/ `; ~& l, r2 f" Z- M$ Q% t! }" ~
% [8 H0 {/ J7 j) ^. h; U% \--------------------------------------------------------------------------------
5 q4 U0 a$ M- t; V( y" I% u7 `3 ?! r) z$ T1 C6 Z
安装提示
' @6 o. d: o3 m y+ W+ o- T建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
& A) }! W% U% f( K9 R
- M& `. K9 p6 r- i- \3 z, \# S3 H |8 n8 C! ]8 L/ c2 i/ M1 e
--------------------------------------------------------------------------------
; Q/ B, q' d- g$ ^% m+ C0 _
/ v: S2 T& L/ m: l. \
1 P; k4 m. U" ? ^稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。: w D, y0 U$ e! ^9 b
* i N) L- n- I6 r0 {* T
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:. P/ I) q% L- R3 j, W
) N& H- z% _/ T: _
转自:动态网制作指南 www.knowsky.com ( J$ q1 J" R1 i: z! e6 ?. b
% ]! h/ c) ]2 Q) W) W
color=#0066ff><html>2 D0 T0 V! q0 z
<head>title=default server page</head>
) V, N% a# W: G$ L! g2 S<body>Default server page</body> b) }# z6 {( \* S2 {0 e" l; E
</html> 8 N2 {, M" t, I" [
1 O" b! b* j) _& t+ s6 K4 J# @让Apache 2为PHP做好准备. L6 W# |" _$ H3 n
+ \+ p8 b: J$ b从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
/ R- E% d+ a! r3 ` @5 |0 A! Q/ O+ W- X n1 L
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
8 G3 x5 z/ R; {8 p! k5 f( W
' V( e- ^& L' w$ H/ \3 n/ gApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:/ {3 _1 @; D$ H( U) U
. P; {5 \$ ^# G- Q% M6 _$ S" [转自:动态网制作指南 www.knowsky.com
' w7 y- T1 W. {( ^7 Z2 |/ g
1 Z" i6 }: }; E# G L2 ^DirectoryIndex index.html index.html.var # index.php
0 K3 M. Y8 c) M: ~( p# E2 D3 l & d* W( q2 X: X$ s8 ^$ |0 M3 V4 V8 H+ a
为了允许Apache处理PHP页,要删除注释字符(#),变成:9 I, s7 h- G3 u! l% T: l! p
' X, `* P6 i O0 |% bDirectoryIndex index.html index.html.var index.php
) t' ^! K8 K( h. y
. u) M& N* f/ t9 O) r( C8 R
0 d# O \/ i0 H0 g还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
8 I, I; J2 I) x' Z
2 p1 Q1 X, V) v4 w9 D安装PHP; O. W; F* Y5 @; \: Y! Y( \
( d5 O/ C( e6 l3 ?! h- {9 E# k x0 [
虽然可以下载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手册,它有多种语言的版本可供选择。$ ^7 `# w1 s7 o; s- z1 S
0 b# }9 s0 e4 s3 Z) ], v7 b E
/ F4 z0 B* c+ n% o( {6 w4 t, d, J. U9 Y% R
配置Apache 2来运行PHP44 ]8 t6 w0 z% e6 P0 y' J3 J( H6 ^
7 ^2 h( H- `" a+ s- m, C' {
转自:动态网制作指南 www.knowsky.com0 P6 K# ~; \1 `+ i; E3 b9 M: q
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
) x# Q( S, t8 Z0 }& \4 {5 T * G W2 V" x: @& u# W0 a$ p2 l
AddType application/x-httpd-php .php ~; w. P/ v2 p( z6 {4 z; w
9 z) j8 e# J" V; Q2 K+ ~将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。! a: {0 Z7 G9 _3 Z6 t$ I3 n
9 e( g0 [. u0 H/ G- [doc_root = c:\apache\apache2\htdocs# b7 R2 w* S6 F2 X o
extension_dir = c:\php\extensions
" d0 e' T+ w* b" osession.save_path = c:/temp
& q# L& V& Q- Q8 J7 e2 c, G % W* _* q) N$ S/ X N
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。" I* B* A D& [0 F! U" L5 H* d
% R! I" k* l/ d1 w) Z* s" v
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
% `5 ?) ?! g! E
, |6 K0 l9 s4 E& A; g: YLoadModule php4_module “c:/php/php4apache2.dll”9 K3 R5 g7 j1 X2 ?' e
7 o( {* Y$ ]! h% r3 a如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
9 D& `& j# r, f; a' y ( i, R1 n6 P L( I/ Q2 q6 P) C
ScriptAlias /php/ "c:/php/"
6 |+ v( k8 y" k7 r$ L- }Action application/x-httpd-php "/php/php.exe"
C0 V8 L% _" h5 W" D4 g5 m) j, x6 q! S5 n+ B0 D+ h7 M' R8 L
一切都搞定了吗?) R) u1 J. l$ Y7 Z3 f4 g+ W% u
6 r$ Q% B8 b# Y d5 X" @转自:动态网制作指南 www.knowsky.com9 h3 m7 C9 @# c1 J/ Y6 D
: w1 V0 \) S% v! a* ?9 R
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
2 ?: ]. \ V! M; g @- e
" m* F- ~) t! \( ~要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:' P) _8 l" j7 i2 T
& P8 U0 b9 A, z4 `# I/ {9 |% u; @! Japache –k start3 N9 V7 p q v7 V9 T
: V3 P8 e: ^. J+ F% N9 H另外,如果Apache正在运行,可用以下命令重新启动它:% B, v2 l8 Q5 c# K) R
& M) y% ^# z, }5 [apache –k restart
+ ~7 K) P5 ~2 U" R" N 1 d9 @- m+ y# |. ^
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
. W/ G$ j- v2 z3 H* U
" ?0 ?$ x0 x4 a3 Z, U6 M' y要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:3 p7 f& ~' Q$ L) a3 ]- r9 v
/ Q4 ]: n; \/ g6 ]' l7 k
<? phpinfo(); ?>' K% S# p8 r) T' l+ Z0 g- M
4 o2 K3 ]# _2 z4 }/ k
将文件保存到主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。9 G- {0 M/ z1 d/ `, s: H
$ ]5 ]" p9 ?" ?虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。$ `1 N0 \7 a: o) G# U1 T/ K
, C1 F: V/ I* B4 \5 P b# X
(出处:百当网络学院) |
|