|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。- T; S2 o/ E: |: P! l9 g; u& P0 z
: k" S9 l8 D4 t3 I2 {: f
6 Y$ z* h- p1 i+ {7 ]4 Z* P
转自:动态网制作指南 www.knowsky.com
# \! p* ~1 W! B$ X# [9 _8 K在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。$ _0 W6 ?. [2 a, H( f7 }# z
* W1 ~% @+ _) L) f2 K
8 b/ H( \1 O! ~$ t, A. c6 X6 f2 D. g1 J( j6 O
使用正确版本的Windows
% E( h$ J! O. \0 L0 v- I6 g. ~7 Z* P( D& S7 c+ P5 {
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。( ?2 N; _2 ^3 B6 R: Y
* v( P5 k" ~6 x, |
Apache 2:源码还是二进制?
9 z" s! G+ J# f, g1 b, _+ E2 Q如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。7 `, `& U: p, \, O
5 W- s% e) N- C% g; _如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。
9 i5 T/ ^( G3 n1 i1 j4 G, Z& X+ O; N3 P: A$ z% V6 I0 `% |. Z
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
! B( G Z- A3 \5 ^# _! u3 L2 i2 t. D. L# ~- J* L8 X# @6 d
图A1 G- Q, |6 m7 ~2 y, c2 v( X
+ m7 u: O2 h |- @( e
% s8 X, Y! x3 c" J) }
0 H, X% M8 j# \! N) e转自:动态网制作指南 www.knowsky.com. J; U1 y: }& ^
0 S# h) {) Y8 E: a. s
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。4 i) r) b$ N1 P! a. |
8 l; V6 k+ l3 u
) z1 S: n; k% m6 ]# I--------------------------------------------------------------------------------( t8 i+ K, R4 g3 F4 H/ i5 J1 @+ I- s
: H6 i; t# F, Q. g& m8 ?
安装提示
, Y6 O& B; U: W' z! T建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
: T0 A3 y0 q1 {" N2 R" S/ M
' q. h% o. A B" a/ \0 E. E! Y1 i, X* ]/ r+ \ \
--------------------------------------------------------------------------------
" j: s$ U) m, @$ l# v F! q5 K: v5 E$ F
0 d/ w. h& c# C; @稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。% T) u. O, r% L7 W4 }# D+ {
8 P0 }6 S% z: [/ ]. a
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:+ ]8 ]- W5 I/ m4 ~
9 p3 W0 J0 |0 r u
转自:动态网制作指南 www.knowsky.com 4 [3 E% a! U) r$ b
$ z* v- N( h8 I5 T/ mcolor=#0066ff><html>/ Y, r1 v3 V/ F) J8 a
<head>title=default server page</head>
, `+ r% b) @( u<body>Default server page</body>
$ u6 j4 P0 r! s1 P [2 }$ q</html>
+ M6 P& [# Y" D# d0 @9 m
% s, p9 ^9 V# _" g n让Apache 2为PHP做好准备
- D! f$ C/ \" _9 v% G4 [4 k, z0 \8 ?+ C6 ^5 x" _3 Z( P k
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
+ ?% ~- o: |+ w0 T. B$ P( o
0 {4 I- E; Y1 s* ^& j$ t# I令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
% o# m3 G' t* I6 y2 L. N( M
# W' t, h4 i2 u$ u4 Q$ \Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:- }% }+ C' o% V4 E) g7 G2 H
2 w/ {4 q8 ?' h/ v% j9 f
转自:动态网制作指南 www.knowsky.com
) v( f2 l8 F, k. ?; h1 X% L& b 6 @: ` m# ~( @0 ~; Q
DirectoryIndex index.html index.html.var # index.php' |# ?2 }4 r: l& c6 [8 P6 W
, r z) ?& Z: ~# J# T! ]
为了允许Apache处理PHP页,要删除注释字符(#),变成:$ k4 A: H* o1 W
9 ^5 R$ h0 r0 h9 J) u7 o# U0 t$ O
DirectoryIndex index.html index.html.var index.php) M* F" {3 y. g$ y
5 ~% I1 ?( B: F* I9 Y/ x
/ k. K) ^+ L- r4 _还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
6 ]' ~3 w/ h7 T: U9 L, G
2 G% r% z: `. U2 ?, o安装PHP
. a7 |/ H9 S: @1 W" {
; ]6 q/ z$ v' v: ~4 q9 G# `9 V; L$ f9 Q, o# ]
虽然可以下载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手册,它有多种语言的版本可供选择。
! x% E, L u* \& f
! ]' E: I5 E/ C0 | * H. C6 s' e3 U
/ m/ I2 M9 t. O2 A+ J2 h配置Apache 2来运行PHP4
- G# d; h6 c( G7 V9 B9 [5 N0 q! r! u# c
转自:动态网制作指南 www.knowsky.com. l9 Q# o$ n; z4 x
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:( E$ S- k8 `3 g K5 a7 e
' Q5 b) n0 Y2 {4 i. ^4 _/ X
AddType application/x-httpd-php .php: u1 t: r! ?) h% B3 X4 }! z1 W
0 W: w' } o: x. T( I
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
% f* X( @4 I- K0 r y# X ; c5 i) |: t% L
doc_root = c:\apache\apache2\htdocs. S! h8 \% i1 @6 h
extension_dir = c:\php\extensions& f2 c, m- K4 N# H4 [: N; ?
session.save_path = c:/temp
4 p3 h' o' [9 N7 X+ v$ R5 S/ U! }
' x: o$ V" }- w' Q! n在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。6 \+ A' }. t$ h, m9 t$ \8 A
! q$ t2 {* D! [5 l$ ~
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: % Q {/ |- Q0 z. D8 a! R# H
& ~: F: @% ~2 v: X' h) K) rLoadModule php4_module “c:/php/php4apache2.dll”+ n6 b f' S2 D$ H- d
8 }, i- e9 ^ d- D; T* b5 a6 S
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
1 n. F( n9 M0 V& l
2 `2 i+ h; F6 ]5 z( J* k; oScriptAlias /php/ "c:/php/"
/ o f$ k) _+ e8 ?; a1 H/ b4 X7 gAction application/x-httpd-php "/php/php.exe"
6 r, i% m, m. Z' N4 a( C: E B9 c
# z! A7 K! d' P5 ]: @) o, h一切都搞定了吗?
7 W& u, D: H3 C, m* ~6 _
! \' b5 J; K a% `' v/ n转自:动态网制作指南 www.knowsky.com
+ {, A& ]4 {/ n S- K! o; R1 S" {# \; n
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗? z2 q) A2 `0 y0 x% A
, u- k( @/ N1 L$ l& K% V0 f$ F$ C要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:, \4 D8 [ j/ w+ |' |0 [
5 u7 v6 |: m1 c. e4 H* a$ O
apache –k start
! Z: ~: Z0 C+ u# D
3 g! t+ b8 W+ `2 u: w$ e另外,如果Apache正在运行,可用以下命令重新启动它:) T! K& i* s2 T4 ?( t `, W
/ ~+ |' g+ k; z6 p+ N S% m6 napache –k restart: y; r9 J1 V) b. k: E
8 t9 k g# Z& r' W, L [8 V从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。! c( L3 s0 x7 c/ |. k4 w/ k$ ~
9 W, b9 M6 ~4 [8 p4 L& @要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:1 l L: U h9 e6 f6 i
( x @9 r: E8 [7 r) c# f<? phpinfo(); ?>1 ^, w& c: R& i; k! i% l9 w
- v9 I- n. v9 g. d9 @
将文件保存到主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。
3 B3 Y6 L* Z3 ?0 M
: N/ z" P5 ]; ^: Q虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
# k1 Z2 B) F% Q( t1 i! R+ m% R: M
(出处:百当网络学院) |
|