|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
. p* Z; \, c. f7 @: t% T* C0 u, {) I) v) m" W! b$ q- _+ f! m
+ h8 ^* `3 E8 C2 `转自:动态网制作指南 www.knowsky.com+ _7 I( n) c2 ~5 s) g. f% `! B9 S
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
( X+ C1 H* Z2 N7 c# {- c; g/ D1 A: Y
/ R$ U& _; u7 G$ d& E
) g, D9 J8 P s+ _
使用正确版本的Windows
' D$ V- p1 k& t3 J( Q. d( R2 }; ]/ O. t
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
! v' v/ U5 T( Q# c2 j" h d% Y
5 w# _5 j) l6 S& C! Y/ oApache 2:源码还是二进制?
1 `4 y2 {# C. ^! I$ C如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
- R0 p; g4 `" W2 n/ Y, U5 C0 |6 \% y0 H$ D7 q
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。0 G& C. E2 x8 Z9 w* _7 W
3 s3 m r) r$ U) u4 a. i双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
9 A' X- V8 a' o- Q2 f0 ^5 I
4 U8 v+ ~; j6 S图A
( B% v+ O! I9 _$ F5 s0 _ P4 j* M; f2 l, m4 W! B
* Q; a$ U& Z9 m! @
' d+ D2 _" r4 T5 p+ }转自:动态网制作指南 www.knowsky.com
$ W8 c* A$ U& t$ }3 S- k+ t
( A; H6 j8 o5 }7 w. w2 m' b正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
0 B7 _8 r$ r+ c* [
+ c: H! {) z6 P( x b* K. I' Q2 s6 A8 [6 s! E1 d+ i2 T$ x
--------------------------------------------------------------------------------$ r; M- }$ i6 m9 R1 q
5 ?1 w4 o, p7 a% _3 ~7 j# j安装提示% a0 T/ f( E( D/ N( k) q0 R4 h
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。2 c: n/ w$ N4 S
3 \+ Q( {) _- _' X3 ^) o
5 a9 J2 c2 m3 n; s' ~2 r* w! a" _% ~--------------------------------------------------------------------------------
" [% o( J/ R# h* {+ f" o' o7 w7 e" i& l- X; f
F3 T! G0 D; b* ^2 M; d
+ h+ [$ \- B( t稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
. @+ c6 H# e# L; x- Q1 f( ?! Y
' s- b9 Z- e1 G- `然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
6 ?. E$ I9 }+ Q; I
+ d, u$ h" X" w$ q转自:动态网制作指南 www.knowsky.com ; A" q" U, t* s: m
' D2 L7 E5 V8 A. `6 _& G Y
color=#0066ff><html>- V' Q0 }: c- Y; s8 l; N
<head>title=default server page</head>
* J1 V2 J; |* P<body>Default server page</body>
, J& N1 U9 P" ~% }+ j</html>
+ |, Q% {/ s* L. g& O4 H" ^- E. u0 g5 P& H+ A' S
让Apache 2为PHP做好准备
1 V# K) p$ J+ F' L. A( r# v$ [" B+ b6 G/ Z9 U9 M% M- ~, w0 O) M3 P
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
' }9 E: |* Q. G
; c# M& Q! p, F令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
; n- x4 d' n* i: a( X" q' t2 f. g5 f. w2 R1 H
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
6 {5 V6 v! `# v/ o
- s, B5 P# L4 V( o R% D+ c转自:动态网制作指南 www.knowsky.com
+ h1 b$ Y2 z2 D) \/ L' ]
/ y. ]9 y6 d4 a( c3 ~: `DirectoryIndex index.html index.html.var # index.php
( E$ B0 R! \# s$ m. d+ ~. d& m ' ^- q& O1 }# U8 S- c* B( r2 R
为了允许Apache处理PHP页,要删除注释字符(#),变成:
/ z" e' s+ E0 c# N# V0 w3 I# j
7 X& X, `8 E Y, C+ \" H( {! uDirectoryIndex index.html index.html.var index.php% ^+ z7 u7 ]1 \4 H
+ x3 |5 p" k9 J# [( O
1 Q, l2 i# e$ x还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
, |& r6 Q7 r4 G n; s( y( P
! }( B* }7 Z4 V$ B$ X. a0 ] [9 h安装PHP
2 S% C$ ~ x2 N y/ P M2 E# D( O1 I2 B0 R% {
. h f2 u3 g$ E- H9 z
虽然可以下载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手册,它有多种语言的版本可供选择。
1 }" S$ a7 d: P/ o: l; Q$ A1 C6 L0 f
8 d: A1 |. w/ C/ O& M- m$ F
2 Q/ S `% W4 U* J; z& a4 Y) ]配置Apache 2来运行PHP4
( F# Y0 ?& T m5 Z" I
2 T1 X& \+ K) [3 Y9 ?转自:动态网制作指南 www.knowsky.com
+ d% ^! s, G/ b t8 F现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:8 L# |8 n5 L4 t$ K" m5 ]& ]7 l8 f9 b
* s2 l, ?& |5 wAddType application/x-httpd-php .php
* F) U1 P. R0 {7 p4 q 2 z) T6 U7 p6 I+ i
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
$ @6 p; |* R- c. n/ k 5 l' S# L* x9 Y a- A
doc_root = c:\apache\apache2\htdocs
9 V' ?& E8 N/ S4 v! d5 pextension_dir = c:\php\extensions
8 y) \ n: p$ o1 ]- o! K/ Ksession.save_path = c:/temp
% j4 j4 [2 `1 B$ k4 S; C
, x8 D3 f( z; t在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
7 B! M. l0 w9 V L) W; a) w; I9 c6 B% R$ q! @# Q$ Z5 U
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: ! j4 @8 I, ?8 O- X0 ]) T2 R
+ X/ v, v: f+ r* Z% p* i: \% _- s4 y% V
LoadModule php4_module “c:/php/php4apache2.dll”
, G" E& P8 M+ V! @5 h 6 a1 k3 x) Z! e1 Z2 Y
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
" ~* z9 _6 M' P' U+ M/ O7 e5 H * [9 [( |$ I/ b# } k! G: A, f
ScriptAlias /php/ "c:/php/"' `' c$ s3 s& Z
Action application/x-httpd-php "/php/php.exe") v2 `$ T6 W# n$ L3 [3 d8 D, o y
3 ~% q+ Z2 }9 g k一切都搞定了吗?0 i7 ]5 Z1 y: V& z2 i
* I; C& |2 n5 ~+ l! R
转自:动态网制作指南 www.knowsky.com8 C3 E2 L( d$ I% f- R/ I* h
5 R3 @7 A( H0 K7 w- x7 w
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?. N* X5 c: E/ a) h5 K- l0 ]% |
7 B2 u3 T' ~, Z
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
' O1 c+ m8 `0 L: V- d( i2 x+ u9 Y
% o# r- S! ^) _$ G8 t0 rapache –k start6 @, b8 W* ^5 U1 s
; B0 \3 u8 t/ x# A7 g. c& j
另外,如果Apache正在运行,可用以下命令重新启动它:0 o% ~9 S( k9 S9 M+ L
/ m6 m. ?% D& W% _, Q7 Z2 J
apache –k restart8 H# k1 p3 r. S! ~! `9 K. M! E
, H, N$ N; d& a4 z" e, G从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
1 y; m2 T, N8 h" d2 @: m; l' {) t. p8 o1 J, Y
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
1 x$ M( n" f' b. R8 p: m ! d6 C" p# D6 ?! C2 s; P# ]9 L" N
<? phpinfo(); ?>6 v! P, n& d. p# Q% Q. |
3 F) u0 v1 w1 p/ a$ ~+ r8 F r- Q$ a ^将文件保存到主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。- y2 K! W4 ~8 {+ K8 ^! h! A3 b3 ^" M
s. V1 l! B t% e
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
4 t; ~2 m5 w0 s1 n# g% I6 k9 C" g5 T) }7 o: `
(出处:百当网络学院) |
|