找回密码
 注册
搜索
查看: 4728|回复: 0

转贴:在Windows中安装Apache2和PHP4的权威指南

[复制链接]
发表于 2004-5-10 19:59:28 | 显示全部楼层 |阅读模式
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。; B' q1 O& `8 a" C

1 C  ^0 u" _* t. J6 O" d% z% w$ @& y0 u' r7 {" J  G5 o
转自:动态网制作指南 www.knowsky.com1 \% E  A3 y+ f# q' r, t
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。6 @' `1 o) \4 M% w2 q; K
! p1 a1 m3 y* C5 p0 {

' ?" c! M8 j% |. R0 {: \- Y& ?! z% [6 q
使用正确版本的Windows
& T  O% E; @# @. l7 \7 a
. p9 E/ A& }3 z- b首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。( l$ p2 G) d, ?' c
# U" n9 }5 Q6 {7 \# X- H) J: J
Apache 2:源码还是二进制?) {3 u* T/ T" v9 ?# s
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
) o9 u% ?; k9 b. F$ J  K- J5 B7 n3 _/ k" n3 Y, B9 R
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。) r. W+ ~% ~, c- Q! q
6 h  }: Q/ M( k0 ?7 R% D9 A/ G1 z# d
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。- i* ^0 y7 S  G' {) h

! w) F+ z' I4 F图A
8 v6 F# U, K; c1 }5 g* U/ w
# c# F, X8 f8 Y6 W: b  _5 J8 I8 w  |
9 ~0 o, i8 W. q# E" K
转自:动态网制作指南 www.knowsky.com  h; l$ h# d' {. Y
: z4 C! g& c  P# R
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。. ?) t& f4 |) a9 x/ r' i- ]; @
4 ]) K  l# }( u% `( s
( W/ r9 x. v2 q
--------------------------------------------------------------------------------  T7 U2 f9 H" h* ]

8 E- m* ?" t( d3 B: s; S安装提示
6 Q+ M7 n9 k2 G/ A建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。' h* D8 o: R  V! w" H8 a1 s" w
7 [$ K4 t# W9 T0 H, p( E

9 ~* `- b  h/ @! c0 j& W4 g--------------------------------------------------------------------------------
$ O0 X: Q8 q( A+ J0 c7 |* C# N$ v% Z: S$ c5 [0 n
8 }, ~' m, p$ U( }& {$ W' U  |0 ~- A
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
. {7 s* }; V+ O4 c' s
/ H  e6 O; \9 U/ K& i& E& h! _, b然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
; h6 _+ Q/ B. {
" X# R  `2 _+ G转自:动态网制作指南 www.knowsky.com & u3 E0 c: y& |( v, Q% b
% X8 \; i* N% d. m* d+ Q
color=#0066ff><html>
* ], H  U6 U" Y<head>title=default server page</head>
6 i/ h+ X9 P3 j5 G, K<body>Default server page</body>" y( |; B& q% w' y3 O- J
</html> 7 I8 e' v+ c& l& k, Q5 c3 z

/ D5 J& Y) q" g, Y让Apache 2为PHP做好准备
, O3 V9 k. p+ |# w
6 a% m. F8 M& }' h% j/ _4 S从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板|  管理工具| 事件查看器)。
$ J8 U6 w9 Q6 x0 {) y+ ?7 V
  g) A0 f9 g: s' F+ s$ C令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
# M/ K1 v5 p( O
  O3 w7 j, ~" h1 _. }4 |  yApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
0 d; l" \/ {1 a/ w
* X) h+ n7 U$ l% _9 V转自:动态网制作指南 www.knowsky.com5 V/ d/ b) r) [, h5 k& y; A
% M2 d6 z# W- q( _  [
DirectoryIndex index.html index.html.var # index.php, J1 A5 H3 O$ A3 B8 u
# r, U8 Y" ^: U- B( }5 U
为了允许Apache处理PHP页,要删除注释字符(#),变成:
+ U; d/ \: N" r3 x' F( f! k
$ K! T0 B9 ^# d2 l; o* zDirectoryIndex index.html index.html.var index.php
+ F6 u! e6 E# |2 n& Z; k" z  . @" x) J/ `# y( s6 s0 @, `7 F
- D2 q  V5 _1 v5 J  C+ T7 h2 r
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
3 x2 x7 }% M. z2 Q: o' p1 Y5 v1 U# h, K; C9 N" X0 _
安装PHP
3 g( V4 Q/ F' W& H* r2 l, G9 G* K$ d0 y. w$ z7 m# r1 o
5 V$ ?* R1 b* M) q! r' f- g
虽然可以下载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手册,它有多种语言的版本可供选择。
! V- {  z! z; Q) y
  x, _# y# |' U . U1 f: @3 r( z/ S% e( `, N- Z9 a

* U9 b' ]! d) K, C配置Apache 2来运行PHP4
' }# _2 W( x: v! `. z# U) L3 M7 I8 Y$ G" B
转自:动态网制作指南 www.knowsky.com7 d4 o* R" z1 K# h3 B+ I
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
' s) z; }* A, b4 K$ I! `
  K6 ]! Q( p! p* Z( H2 hAddType application/x-httpd-php .php
  i5 t% }7 ]: N/ `( v 3 L( ?+ K. ~6 u" f6 D5 I4 S
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。$ ]( w: n* \1 I+ d) D5 w

+ `8 i* _7 @/ U+ J# fdoc_root = c:\apache\apache2\htdocs
* E- P4 \  r- u( H2 b. y; M1 F- vextension_dir = c:\php\extensions
7 n* ]; S2 J6 K6 k+ A0 _session.save_path = c:/temp
  Z; c) H: E7 M: y7 b! j1 a! f$ D * p- g! F4 T0 z/ L' v
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
' f. @2 S3 s, l0 V0 L% K# H( }0 v5 ^$ @. X! U
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: ( D, J, ]  o/ Y3 \* d7 r1 M5 u

6 V% W1 f  M( u% U& TLoadModule php4_module “c:/php/php4apache2.dll”
8 A5 x  a: l' x% N9 H . Q3 B5 q. `, ~6 _$ {. e7 R2 x
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
' \" i* Z6 ^/ ]3 B0 t ( I$ G1 i" Q, f* ?' Y8 u
ScriptAlias /php/ "c:/php/"
% Y! S# E" W1 OAction application/x-httpd-php "/php/php.exe"
6 y  ]8 M  _8 H3 b. O: B& i7 O( ?& ^$ ?
一切都搞定了吗?% ?( q& g! M& q. W# J0 I6 e( D
  ]: F, O" i# L
转自:动态网制作指南 www.knowsky.com( r5 S: s" e  M1 D( X+ |9 C

( q3 |0 r2 k8 W0 n4 I; b, X保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
0 b( a$ n: c4 y* t2 x- x6 r5 k6 Z$ l; k2 c& T! N
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
4 k9 }+ e2 r* b7 K% x3 \3 U + `$ Q! H# ~$ }8 w" l3 ]
apache –k start
. R, C  y* T) Z2 q3 ?0 Z/ { 6 l1 @# g2 t% H2 X+ W
另外,如果Apache正在运行,可用以下命令重新启动它:
; Q6 h' g' f: @ " d& U) l1 Q# r% \9 Z# f0 z  z
apache –k restart
: }! a4 M! x6 t6 p3 J$ i: n- N : `6 ^) C. g8 a' V% d7 M3 k5 p
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。& O. K; G/ a/ y+ B! ]; U2 F! [

) b/ a- g) ^) S$ y1 i% R5 E; y要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:5 S! u" @# N7 b: B$ n" Q1 y
9 {8 Q# v( h% e- L) l! w+ Y- V
<? phpinfo(); ?>% N( N* ?& l/ z# T1 J& m  v( s$ U

, f( l' R0 Y" l& r6 M将文件保存到主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。6 s9 Z! u9 G  m8 `' e; g
4 P) w0 Z' \. E7 l3 Q
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
) c% F% ]9 h1 s& T; v; i$ J/ A" }
0 H9 y3 m. k- N5 `7 L(出处:百当网络学院)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-9-30 13:21 , Processed in 0.036298 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表