|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。% N Z* u+ W+ W2 ^" N7 k. J
6 F. Y6 H" b1 z& f4 V* E# x
/ |6 B8 ?9 z! T" s6 o4 I/ W6 Y转自:动态网制作指南 www.knowsky.com
/ A9 q1 m" N: N y在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。. `' Z* x( ~7 D% V [6 l
1 ?0 a) z4 |2 ]1 g( A5 Y4 _
* L; e1 y7 A9 U8 d6 F& F+ M0 Q7 e/ c4 r7 }. J' g
使用正确版本的Windows
' d" ~! v5 x9 M* _& l
( |' K. _3 H1 Z$ e! Y首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
, D" w6 ?6 {8 a: V& R
- m4 m% t0 R, z$ G }6 c( IApache 2:源码还是二进制?
7 h( _4 O2 a6 N' Q) h+ z" r( G如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
+ w' @% _4 a6 F- r( e$ |
+ n% j+ Q2 i4 o" M5 q7 A! p; o) |如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。4 h& P7 ]+ V5 S9 ~, y
& Y1 r) e$ L7 l: m* ?8 z' h- p0 R双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。2 S9 x, h; s" n h$ x
9 B+ m! a) J- I4 A2 B1 M
图A4 O8 L3 K6 b2 V l' J7 ~* K
. E4 i) m2 i p: N1 T( A( h: r- w) V3 \. p
3 P+ Y! ~# W3 L9 \, N" K8 H
转自:动态网制作指南 www.knowsky.com
; P' B9 K( L/ q# y, y4 K s; s- k3 @
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
$ p1 Q. R) p, ~2 S8 m- n ~0 \9 K: A# q$ M& V E f' g/ g s
. e- L7 F# s. Y
--------------------------------------------------------------------------------( ~4 `8 d3 ~5 ^, H) D% B
' r! t7 n5 ]* d/ @5 g4 s安装提示) m/ [% c0 O8 ^5 F" u+ ?
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
8 b' K$ k0 V# M7 d* ] X0 U* m, [& i& r7 Z$ r
$ T6 d% M; N5 s# ?
--------------------------------------------------------------------------------. W6 [9 y( r* t* U8 g! c" c2 L+ w' _
# Q* G0 d; q0 ? ^8 S3 B) F7 l+ j" K9 w" Q. i1 |; J3 a- P w
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
: M X4 }8 j4 ?
; K- x& L9 ?7 W, s+ O, l9 ]然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
4 A0 ?/ t5 q' P; q' N% O5 b1 t # e6 u* P$ s7 e6 {# F+ l- W% u: w
转自:动态网制作指南 www.knowsky.com 0 W- n2 `4 p! P( a2 r
+ k- H/ a9 x9 I7 r
color=#0066ff><html>
: A# ?8 f. ~8 r1 @<head>title=default server page</head>9 S( l9 O4 T5 N ?- [: u
<body>Default server page</body>
' e! f7 z) P- \5 C' j) p" ~</html>
$ i- m) }+ q, j, }, `
1 c: A6 M, A( a让Apache 2为PHP做好准备
/ N/ D1 P2 `' L* B3 O) _3 {) H* `9 o' C
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
, C5 J9 {/ t# [: Y
; | S( C/ x4 @# K6 @' a3 C令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。4 |& M& `0 v" s+ a: o
8 Q4 t* j' I8 i' ?Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
7 Q: C* C7 p, T* |# Q1 [* y6 n- d$ T! L8 r; C% ~9 _$ J2 g* f3 L8 O& Y/ D' R
转自:动态网制作指南 www.knowsky.com; B8 \! I& g3 Q1 N& a
9 a* k, Z. I2 ]$ t4 k2 mDirectoryIndex index.html index.html.var # index.php5 z* d$ d( u7 i9 o) T' E$ S
+ f" n$ t% B% G; k$ {
为了允许Apache处理PHP页,要删除注释字符(#),变成:% v4 I- ]% f9 A: Z
- F- ]5 h* x6 |
DirectoryIndex index.html index.html.var index.php7 d' C { `' |7 v
/ V- X" q7 y; N; q( a3 _# \4 t7 R- K
4 j9 i! t/ D0 F2 V" g还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
4 j* s% w1 W( \( P6 r8 U4 g
, a. i- ?: _0 b8 b, x安装PHP
! z9 I4 `& A5 `7 \4 i$ R
+ d1 e# z* O5 h2 Z9 v6 N) A% L2 ]2 o1 _0 t+ ^
虽然可以下载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手册,它有多种语言的版本可供选择。# ]; k7 V$ A: D+ @, Z
4 L/ a r. |. d4 V# } f
9 n/ t; j) Q/ T
% U2 n+ u0 k. F. _配置Apache 2来运行PHP4
; D0 d* C/ x& z1 O1 n% u, U0 N- Q9 w, o" ~
转自:动态网制作指南 www.knowsky.com* j/ M f. k6 s" T
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
9 R; }( `% {9 r0 ]! j- H
' c; i3 V0 q, T* Y! XAddType application/x-httpd-php .php
! W/ F; f R" c2 Y2 b
1 W ]8 s0 U5 p) y) P将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。. k! x L5 s/ Z
8 @5 t% L% V, V1 z0 U- A7 @0 n' @" K! A8 r
doc_root = c:\apache\apache2\htdocs5 ]( Z6 X$ Q. w3 g1 Q
extension_dir = c:\php\extensions4 k/ ?# r. [" u& X5 `/ k E, M% Z0 @/ H
session.save_path = c:/temp( ^! B8 n+ p1 f
, M5 U& N0 o" \/ o' z在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。% r/ c" b" K5 K1 b0 } j
0 q. F% f! ^6 A
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
$ Y/ X, S; m5 |; x* r; |* b5 w2 D1 J) l5 v O6 E9 o. @6 \
LoadModule php4_module “c:/php/php4apache2.dll”
4 O2 V' K2 P: \" l# G- L8 c. j
: ], `2 ]; f" S; B. b如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
' d8 i4 x7 u; @; l , o {/ f' E! r5 l
ScriptAlias /php/ "c:/php/"0 h! D# W+ f& Q9 m! m! |- L
Action application/x-httpd-php "/php/php.exe"
% x3 y$ o$ i; w$ r9 x: ?, B4 J: P3 U6 d% ], O+ x9 ^
一切都搞定了吗?: \0 }! g% n: E0 M
+ A3 P# \+ ~7 u) k6 S( b
转自:动态网制作指南 www.knowsky.com
7 g% B7 G% {3 k& x8 t) d5 z6 @6 q9 a6 ?' m( z
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?: s1 v- o6 V/ [
# `, D2 i3 X7 K5 g4 P要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:) L4 L& f! N q1 T+ s
7 c8 |; r9 D8 c& t- _$ e: uapache –k start+ @: ^7 `0 z% \
5 d4 l+ }8 S, i2 j3 Y3 c3 q- |
另外,如果Apache正在运行,可用以下命令重新启动它:
: n- W5 O& S3 g, I
* F1 O/ Q4 G1 M8 g0 Eapache –k restart
. `( H# `6 d. J5 y, s" Q% X
, _4 ?. I! z, x) |. b从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
9 ` F! s6 p& b2 J/ x5 n$ ~- o8 B" [: f7 `8 ]
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:4 P; t2 d8 M- A6 M8 s
g+ j: m/ g `6 A U9 X; C) d9 ~
<? phpinfo(); ?>, L9 P* d, C5 z! h
, N' K$ E: |7 @+ H
将文件保存到主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。
% n3 \2 `* q5 C Q6 O# m) I3 v" x: B. F+ H( r
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
) h& W! F3 |, c# Z
$ k) U& u9 X. E# b3 k& m+ @7 P(出处:百当网络学院) |
|