|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。 x y+ O$ a N# P: Y7 Y2 F/ S
' W2 G, m5 m' S2 i& o, y. o$ V; z3 r3 j" d0 t9 U& ~. C
转自:动态网制作指南 www.knowsky.com
6 z6 C' o1 e0 _在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。5 O) D! b, p! o$ `1 H7 X
$ e! |: C3 a% a& _' ] $ p5 o# _& k7 `$ L4 F% e
3 N% a2 _1 }* k2 a; [. n# y; x
使用正确版本的Windows* v6 j# U' F0 a
6 F9 d( @+ T+ n. t+ t7 W9 q3 K; ~
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
2 D/ @* | n9 P9 ^" ^$ P0 O, b
7 @! L6 y8 C, D. NApache 2:源码还是二进制?& Q8 t8 b2 E& h) X2 ]
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。7 Y0 V7 C" c5 _* ~, d. N' v
! y; F+ E& [ f9 ~& H, h
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。: ~3 @; Z9 w3 H1 ?/ q" p* i
* n* n% X/ Y' \+ I8 z I双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。+ i) q8 ]/ O7 d$ s/ }/ c+ E2 O
' n: F6 t. W0 g3 b
图A* j) C# K- y& _: N0 e. J# }4 w/ Z
( V( a: G' I% ~) Y& ^1 G* X
4 x$ \8 t4 P; L M! D) }8 y; Z& B; v; G6 w3 e6 I0 H) j
转自:动态网制作指南 www.knowsky.com3 K3 H9 ~- L7 G
: I- ~. l! H6 Q" p1 F3 K正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
+ n5 ~- U+ O8 J9 j* f& V6 }
- _' h; @. {/ C1 n# v ~; C$ z& ]: X* c5 {3 F B: S
--------------------------------------------------------------------------------
d! ~, A" _. a1 D( N( E3 l, \
/ p9 [5 ]2 q& a. |; m, I/ H! z+ h( i安装提示
P8 n3 S# I0 Z+ k建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
5 c; q& I) `7 U4 N: r4 ?- v' }* @0 }' o8 e3 |, _; j
: H& ?% l4 X# W) A, h! I--------------------------------------------------------------------------------# U# J8 |% ^3 Y3 S- h* l" z
* |2 a1 O) A: D9 s; X! G0 \ f$ S, V" O9 n! N: K; m
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
' H' G/ b/ l" l" o$ Y. o1 L0 i7 w2 t, Z9 q
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
) c' \( s& E- Q/ Q5 W" U. b* M ! X# j$ C2 ^8 Y% F' [7 v
转自:动态网制作指南 www.knowsky.com 9 ~! |4 x5 Q; ? B
! u# a/ U; ~# F. m5 Ucolor=#0066ff><html>
" J6 v) |; E& a+ v2 T<head>title=default server page</head>2 C2 C4 {! T- H+ s! h; N) b( T
<body>Default server page</body>
+ L& X3 h0 e1 R; {3 @</html> , B+ t' v* @* q0 A
1 \2 j9 R* w3 _: L5 [) z
让Apache 2为PHP做好准备
, T5 o: \* T, G" w0 `# y
# c6 _4 ?" [3 h从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。/ a( S$ s% B+ w
7 z* f1 p* K. W+ J
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
' d& J9 B( {# P- }. C4 }$ `9 x
. B; v p% l& d" a) IApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
$ D% ^* r- O0 N9 K9 `
! [( a4 v4 u; O+ B3 }转自:动态网制作指南 www.knowsky.com
/ t% R; c: w/ |4 G7 w6 V ( b- T* M$ T4 E8 i8 [
DirectoryIndex index.html index.html.var # index.php
, {8 f7 n9 o' a" E9 p6 k8 f3 l O
% Q2 Y' L- R) M! c% C) I为了允许Apache处理PHP页,要删除注释字符(#),变成:5 K* ?- v# K6 Z; {
8 o3 b+ b5 O& t U6 dDirectoryIndex index.html index.html.var index.php
1 I T! Z( a1 t' X* f- o: r 0 q6 C, s* Y H# \* k$ z' B8 E3 Z
3 Z% v: K. _8 W, A4 u' U5 B2 D6 W还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
' k0 _* M6 _- s ?9 A5 r7 T( v) |. X! A7 M, V" c2 V
安装PHP
! q, ~) X3 f* ^' g5 p) O
- ~ [ J* }7 ]9 r6 Y. ?8 k p7 F5 L! |/ p+ K1 J( a$ d" M( |
虽然可以下载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 ]# z/ s! z& A' a9 `
; A0 T& Q7 ?) V! k6 |) U3 L 8 G6 @: l ?) f" ]6 y y3 ~
% m! m* x! ~9 R; w: _' C4 A配置Apache 2来运行PHP4
/ L0 a! ~* D8 d! @5 H) L o5 s/ h7 }! {( i, D! N% k: Y
转自:动态网制作指南 www.knowsky.com
7 e" i: Z- A* [* p* m) z现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:" X( I5 @0 _- E* e
- ]5 ?& M# D; |) x- P' H1 B, SAddType application/x-httpd-php .php& p$ a/ _8 ^( e' g. t5 |/ t- i
9 c. {7 y* O4 d5 ^2 @ \% q! l将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
. ]1 e1 G9 x, s% m5 u( v" u! v9 s5 q
l4 z% z1 I2 h* m" Tdoc_root = c:\apache\apache2\htdocs
9 }- D" j' T" Y. Fextension_dir = c:\php\extensions# `" r5 I0 ?" c: r3 L; t$ F, K
session.save_path = c:/temp, C$ |$ _8 @+ n8 ]+ T
$ Z3 i0 s3 h* O
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
3 m& p4 a) G$ T' ~, X" i( F% t6 i, k1 l
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: / M+ S3 \7 H5 u9 a T0 e
3 {8 G! Z$ O6 Q2 |$ ~
LoadModule php4_module “c:/php/php4apache2.dll”
& u3 K. j' q8 L" G: B& L! F k
; v& W( J' ~7 _; [1 p/ i如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:* z7 b% d* C0 j* R
) | r9 ^* d9 e# ?+ i! x9 z
ScriptAlias /php/ "c:/php/"
+ b* W3 l% J) V H( RAction application/x-httpd-php "/php/php.exe"
( D- G5 i: r9 W* e ~0 K) K+ @+ f$ M
一切都搞定了吗?7 r! w) f: _6 g7 W% Z/ R0 m
' Q& B, X2 e# m7 ?
转自:动态网制作指南 www.knowsky.com
1 `1 r/ q1 h& g, }
: e; V, r' F& V+ x保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
: V U* o2 m! ^% r0 ?
' I. S' _: }" W* h- @0 {要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
& N+ @9 ]* ~+ x7 y+ j# g$ v6 S& G
1 V1 e2 M0 O1 w3 ]# Sapache –k start
/ y3 p. ?. h6 o5 _& e$ w* d3 ? ) |0 C, s# Z6 |/ H
另外,如果Apache正在运行,可用以下命令重新启动它:9 B# l2 p y5 j" c8 Y3 h$ T
$ e. p0 k4 N b# U4 a$ W- ^$ k# wapache –k restart
) n; I; k( U1 }# n ; K' }! ~; O( T$ w3 Z
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
2 n. L' a j% O# W; x* D. |/ p! \8 D, H( @) J
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
# t7 t1 ^( H; a
" ~) p* c2 H4 t, n<? phpinfo(); ?>
% S6 I, c, d2 d
# ~: w( d% ?% O9 j将文件保存到主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。; E! f( P: s( c, b' z# B
2 u4 `5 B) }* T. x虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
Y: u7 H1 s/ C5 X3 Y9 l9 b$ c) s- L8 Q8 ^) l* l9 c* s7 r: o
(出处:百当网络学院) |
|