|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。5 M$ m- Z- |# ?+ g# g5 J; O
; _2 R9 Y1 j2 W9 P& K% N
5 [: w2 w% x+ `& a5 o8 G# X转自:动态网制作指南 www.knowsky.com! t s! Q8 M& O" F, z
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
$ M# A# m/ z- T- H8 o1 ^
4 z" r' g: G* |% B' }2 \
0 o( Q$ j. R5 X
$ Y, y! p5 p( r使用正确版本的Windows: o) g% T% K) j7 |0 r" z
* M2 h6 `, ]/ r6 Q7 B
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
' t+ J9 N% y( v, `& i j0 t# o5 {, x' y+ ^1 d* v( ~
Apache 2:源码还是二进制?
# }- T, b: D# m7 e& d* |如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
3 Z. x) c! }5 \3 M& f2 y$ h
7 F# P/ [( x4 l+ S如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。
# d p( |! U5 S" L
" _1 ]0 E: B1 @- W* a# R/ J双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。5 f+ g2 u, S6 _+ Q2 p% Y0 z
. n1 u- v) }1 x+ l图A% U6 ]+ s) c2 ]( n2 }
2 N: G/ n0 J/ z5 r, c; O, i( j( W+ h% K' _/ T
6 n4 h, ?; a8 g) g; e
转自:动态网制作指南 www.knowsky.com
! f8 D! u; ^2 p0 w) s+ Y9 r- P s& t8 s. M1 c9 N% j" y
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。" _% g/ K4 p5 E
% R. a: k) [; r7 Y! I: z2 m/ b
& q5 J `9 ?* [: X-------------------------------------------------------------------------------- A3 [( A8 e3 [ q7 H
% D1 f) m6 \. c& |安装提示& i; V! }& i/ T7 D4 `8 l
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。) l, t! `5 k4 W4 M1 g" e5 s
0 }" \) G3 R2 \6 u5 ^+ v+ k
1 T7 a8 O! W9 F
--------------------------------------------------------------------------------
/ T4 ?' x7 O& E9 U; y' k
2 P7 M/ L5 B* [4 A3 Y( h* N) e+ O5 b
8 _! z' _; J8 ]8 X6 w稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。, L* u: y* N7 |$ O1 u
. |& q9 @2 o) p/ c* K然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:* I/ B( o9 l6 `9 D
$ L& D, s1 `/ z& b转自:动态网制作指南 www.knowsky.com
- L, w- Y. y3 |0 q
8 Z# B6 O* I- S3 o' Acolor=#0066ff><html>7 |1 u6 f+ a' ]1 X. d3 W) b
<head>title=default server page</head>9 J$ D" \4 `0 s3 a4 v
<body>Default server page</body>- a) o( b% z) x2 n z7 V+ n
</html>
, b( H6 \; f/ D
$ ?3 e7 O2 _& [& |( i# `/ k让Apache 2为PHP做好准备5 u# t! i! L6 x/ D% t v7 v. \
4 ]/ a; G4 ] X' i. Q4 ^从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。7 k( p! j+ P# f/ S* O+ K
4 ^, z4 N. M2 g" M4 w0 ]令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
" P& j4 v4 _3 d5 u) r
6 c* ^1 l4 G7 H; z) |. v0 l. l3 d6 yApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
$ N* D U1 k7 k' z
" a6 l6 B/ B/ g7 u. e转自:动态网制作指南 www.knowsky.com
9 G4 O2 q% h0 [+ G' P, b
9 B+ l/ u' e! O9 N7 ~DirectoryIndex index.html index.html.var # index.php
. |1 w5 A) P6 k* L9 h) h" u8 a * G8 P- l/ a" g% S! J
为了允许Apache处理PHP页,要删除注释字符(#),变成:6 M q5 f$ d% ]' | x; o9 N
% x* {3 s% {: b; U4 x& pDirectoryIndex index.html index.html.var index.php' ^0 Z4 M$ v/ v2 y. U5 w
5 J2 l0 K$ n2 }
$ x# J7 j6 A% T" b5 w8 @' y
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。$ ^+ n) Q) E' ~% i/ i, Z
5 `9 d J: l9 R: G
安装PHP
4 Z7 w+ `# w- j6 ?- t9 h1 m6 W9 F$ f( W2 t
3 X2 r7 a0 s* ~8 p! n
虽然可以下载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手册,它有多种语言的版本可供选择。
; L' T" m& x& ]' g
7 N: R5 ?( y& E$ v8 a
% v4 G H! V8 {# Z0 v' }* v2 k4 E( a2 X, s- W0 T
配置Apache 2来运行PHP40 S; y& `: { P" k$ N
& U" c4 E* q0 O7 k7 j: ?1 t+ O
转自:动态网制作指南 www.knowsky.com
8 Q9 \% q- P5 _: I现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:1 V8 i8 u8 c0 h1 S* }/ L
7 G! O# w" y. UAddType application/x-httpd-php .php
* v! i1 T+ c0 l% s, s + W% k% G4 i+ X- h. H2 U
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
. i1 Y2 h' M" p$ V( h " }3 C! E6 c7 Q( W: r2 q& k
doc_root = c:\apache\apache2\htdocs/ _9 b- |0 f% {) ~6 `7 c8 M/ @
extension_dir = c:\php\extensions
/ ?) U# B9 R6 W2 J0 Y. csession.save_path = c:/temp
9 N" u2 O. M& R9 u$ Q6 u
Y8 Q' N" \8 U在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。4 g5 R! a" p* p
( ^' _8 ]# C4 D* T& f! D% D
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: 9 n0 c: Q b' A7 I8 j* W
9 p' |( F- V- D$ D& m2 {9 u& zLoadModule php4_module “c:/php/php4apache2.dll”1 y9 _% h1 x: s: J9 |
$ l; P2 k& c0 O$ W9 i如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:4 w. N' K" v; `- n) ]4 u
3 F1 d3 H0 G# O& `! o& y% }2 R- NScriptAlias /php/ "c:/php/"
8 x3 A2 G0 Q# h7 ZAction application/x-httpd-php "/php/php.exe"8 J) y a! a m& l
9 s2 T" B% Q: m8 q; O: m, R
一切都搞定了吗?
* D) Q3 l4 W |, v; I Z, A v6 }
" A" p$ t& c" A转自:动态网制作指南 www.knowsky.com: N) ?9 B" t7 w/ |6 a, e! D
# Z( `; L1 b6 C/ S1 _ A
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
6 o1 c7 e! w2 `/ c! B+ N: _: K7 ^' `: q+ P" D) C
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:, x) C1 I, z6 K" \( a2 z
9 D7 N, z4 T# y/ o! napache –k start8 ]" _3 \" v4 t$ E
9 R! d7 I ~, D4 @- c) _7 ~
另外,如果Apache正在运行,可用以下命令重新启动它:
3 D' N) x" a, I7 M, Q# G6 D0 w 8 O8 l' y4 e( O) p3 G
apache –k restart5 r) y' ~5 K( D. A! r; y
. _. {. f1 r" }! {$ J6 z2 A
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。4 Q3 E) z" P( l" M f8 p
9 p1 ^; [ i1 T# ~" j
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
" K$ M" H9 e4 k3 k# ? ! j8 f8 d9 B9 n+ V
<? phpinfo(); ?>. Z* }, N) i7 X- }1 e9 C) s9 W/ F
$ X1 u4 x& j. T4 r9 m
将文件保存到主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。
. m2 q9 K0 X: w- Y7 ]+ b0 G4 e) s
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。0 ^3 M# v! f2 s: E0 V% A( @% ~
; h, e9 _& `7 V* I O8 m& {
(出处:百当网络学院) |
|