|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
4 o" i0 Z/ x' i) ~5 C; f2 o9 C% Y4 f" t; D3 |0 T X6 G
8 h% `# y) m( ?转自:动态网制作指南 www.knowsky.com% `& C$ { q8 ~/ C) F1 i0 N
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。/ J4 O, H0 `2 [+ s
# e; y9 F$ h; ~& v" p8 g5 @1 D
- T5 d2 H2 D1 O- x: M8 y% @& _
+ P) a+ p3 f& N7 [& k. ]使用正确版本的Windows
) P% H* A3 B$ e
5 @: Y7 B3 o9 l) s8 c首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
0 j1 M$ d W0 Q* T0 {* Q# K4 s& I5 \" P! o& S. a
Apache 2:源码还是二进制?6 r2 U D9 l& K) n' ~/ W
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
0 `& T" S v6 U
0 ]* H, f6 E# [/ X如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。
# X+ ?, j' F( P: l
" u' e, E: ^) Z双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
! w b% t* D) _: {+ Q2 e1 P6 {' c) Y0 G9 g& N% |/ O. E- h- n
图A
. U4 i: E3 G6 v9 Z7 Y: @% M1 k7 o" e, F/ a N9 a
) w# l1 T# |) |1 y& a$ i
* \: U8 e7 P5 ?0 X转自:动态网制作指南 www.knowsky.com
k6 B" \, o S: U- d
e A" Y7 V5 D: }* e# z正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。. ^0 p ] b. s, u
; i6 r! O3 e: K2 X3 p5 P
( l8 H( p( `. [2 R! y% r5 ?--------------------------------------------------------------------------------* k+ S4 Y3 L% [; H5 L: L, W
( m2 q9 |4 w; l( r7 ^安装提示# Y- Y S. e* c6 u- {; f
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。2 v; C H; m a- l) p
+ A; }; E2 F, @5 {+ q
+ f! U7 |$ D+ `--------------------------------------------------------------------------------
. w% C, y+ D; I- ~4 W2 G% g- r9 W7 l8 B
0 K- b) l+ v1 d+ E稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
5 L$ V8 ^. u) M ]) N' r, j7 ?. O3 x
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:- i3 S% E! Z3 W8 _. g4 a9 a
3 i+ `8 A0 b; ?8 E4 [) M转自:动态网制作指南 www.knowsky.com 8 h( m9 ~0 N: n/ F, ^( f2 }5 h
* ^5 D/ o7 f# a) ?+ _ s# V! n7 j- \color=#0066ff><html>
0 J# T8 K% l! B$ B k/ P) I<head>title=default server page</head>9 c/ V; n: U7 m. u, p
<body>Default server page</body>
7 w5 }, s3 t/ I- N- r# J0 A% k</html>
, w# O. }0 e9 n5 l/ D, i7 ^. m' K
j% x6 ?' F, p7 v; Q& F让Apache 2为PHP做好准备1 C, e" D% }$ i" [5 I9 U, L+ H; N
. v. g9 ]& w6 S7 x' B7 D
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。. h$ T$ y% I% P J1 {
6 [2 K Y- d4 j0 U9 p/ h
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。/ R8 z0 N( e5 A" q2 L/ Q
! i% U: U# J9 ~+ pApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:' g! K8 h( J* E' b1 x
) [0 `7 k8 S: B' a/ @$ f6 f$ X
转自:动态网制作指南 www.knowsky.com4 ^! l- S: @$ k" c
6 m4 C# Q, T7 S
DirectoryIndex index.html index.html.var # index.php& C, [# w# t: m& K! Z: `% `7 k8 n
8 n( f) o3 ?5 O& r% G0 p- c6 C
为了允许Apache处理PHP页,要删除注释字符(#),变成:7 ?. }& I1 e6 f' `. g" G. y; S" r
9 u0 Y! X) L/ DDirectoryIndex index.html index.html.var index.php, k$ o+ j8 M' v, v3 @! e
( i) K R. \; Q+ m: z( R( N2 y
7 t; i9 A0 t" Q; \5 \还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
- t/ O7 @ J' Y+ M) |) x; S- L5 j, \. p, n: j, ?6 m
安装PHP
# l8 T* Y3 W! N: h
' s3 H5 q) |* L" D( B) [; \* F; G: `6 H" f# @4 l/ w5 l7 _
虽然可以下载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手册,它有多种语言的版本可供选择。
& B& b) G* p: k; x9 N/ W
$ i; o! Q1 f; i8 J( d, K8 t+ u , [/ A- J, [; B; |1 {4 _
h, T# K' H9 T' T6 U f) S
配置Apache 2来运行PHP44 {9 x2 ]; d9 [# l ]
7 D. L) b7 w1 \4 R6 f. b& |& h9 ^7 r9 t转自:动态网制作指南 www.knowsky.com
( L6 p5 X, v1 J1 D3 P$ {现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:3 }8 L8 E( Z" B% X1 D
1 o+ q- M. y) u1 QAddType application/x-httpd-php .php
Q4 U% a# }! w& u
& f4 n% h7 V2 u7 v. B* O% l将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
% f ~- k( k6 ]' K& |6 @ 6 f2 G, P; q! L) Z" P
doc_root = c:\apache\apache2\htdocs
" W2 e7 t. q1 F @+ k/ U# I6 `extension_dir = c:\php\extensions
* L3 y1 C! e: R) b) P5 [) osession.save_path = c:/temp- A! |5 P( F& r, x$ B/ _
3 [. ^, p* F% ?5 s# o, g: t在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。- v3 Q: W4 |; r
+ S f" R, w K7 m
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: , V& J+ M8 ?7 Y; R
) ]- x3 A% c, c7 o+ V6 x9 X/ ]LoadModule php4_module “c:/php/php4apache2.dll”! a) t: p9 Q w, q; ~) m4 \
$ p5 ?% z3 x' y& A如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:' y2 O/ x' H9 i% }$ h; `9 _
( M3 c: D# G: O9 ~5 C3 dScriptAlias /php/ "c:/php/"$ a; a) C' E4 V7 y3 t" k/ u
Action application/x-httpd-php "/php/php.exe"# h+ J* W7 D+ T- h: C& i+ x& m
# u" S6 Q5 {1 x! {0 P
一切都搞定了吗?
, k' i" y( b- s$ G# F# `
- ?. m: j6 A4 h% \2 |1 Y转自:动态网制作指南 www.knowsky.com+ v( F8 S9 I; c- ]
. d* Q. s8 N& J' E) S1 r$ \/ f# Y保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
6 o% k; k, \* G4 k Z9 P0 f; P
- B" n2 x4 k; {' E, Y- a( w要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:0 c4 w% M9 [$ P. S" j
8 ^- \, h7 [: ?* b# i: v/ w
apache –k start( c6 I3 Y' R8 y+ b: f1 R
2 z* ?0 c5 e" J6 f' O另外,如果Apache正在运行,可用以下命令重新启动它:! v. O7 S; V1 p1 i9 H
6 j; Y; }7 C9 L' y J7 N8 z, }
apache –k restart- H1 s0 T4 [0 a8 x8 l l
" O7 m" _/ W7 Q( ?+ [+ j从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。9 w! d; T# \) D; e' X" ~
4 K: Y: G* }- V+ q9 f; J! U要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:' H- \& t5 ^4 ~; d
) g- ]* ]7 y i3 B7 H; t5 O4 k0 V" }1 a
<? phpinfo(); ?>* x9 k# h% q( q" N8 b* Z8 G7 ]
5 }- h- E- c/ F$ Q
将文件保存到主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。$ G/ N6 Y/ i E0 z
8 g: q! n3 x; f0 ~4 {$ q& ^% U虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
* H$ G% [% P% {- F9 P, A% y: T; {5 Y' k" Z3 B1 C
(出处:百当网络学院) |
|