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

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

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

$ N7 o; m. H9 F+ M( L  {
, }: b* z# {2 J8 B  I$ ~4 K转自:动态网制作指南 www.knowsky.com
& s& Z; ~0 y- y0 Q: u0 r在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。& h& @$ O+ B- O' }8 N6 G, D

6 ~& m* Y. o: A2 l8 @' X% M- Q
2 T1 _5 q& R1 ~6 Q2 b, L% ^& g! h5 i, B2 G, F+ m0 A
使用正确版本的Windows
$ k/ r+ w6 l; [0 i7 _0 R6 T. N! o# |4 i5 [5 }$ r3 W
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。& [0 t9 o3 M+ F% V3 ~! a8 f9 G
/ ]' ?& n, e7 C4 x6 o" p
Apache 2:源码还是二进制?
- d9 T' b. X, |/ b如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。5 X, R9 L; p" H0 o1 l/ j/ X  H  I: l
  U, L  u! U2 |' m
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。
2 i# L8 n* Z% ~2 Q# V8 I
5 n& V# z# n8 |8 f/ w双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。4 t1 c3 n) C$ X- G1 b# w8 j* ^

" a  }8 m+ H+ A& a图A
! k2 N) C! X% a0 c5 a
! s( Q, V  C* r% u" _; y; Q! Q. l4 ?8 }  x5 n$ H
- w) H( c. c1 s! k' m
转自:动态网制作指南 www.knowsky.com
# ?0 ]$ m1 n  P
! g0 h$ B0 k7 N; e" s  P正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
) R1 h# F. a5 A* [8 t7 N4 r& p; D- M9 n9 y" K; a

+ G% p$ a9 h6 R. s$ V3 B4 Z1 f--------------------------------------------------------------------------------0 x3 `5 Z% e9 [
0 H" p- g. [7 {' B% t
安装提示) N5 R6 k! e4 v
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。( [2 G+ B  T' l9 I' t6 T
2 H8 n% }" ]. N6 e9 O, e+ F

6 R7 M" f$ t% m& _: B--------------------------------------------------------------------------------
3 h6 L' L; e- G2 U
+ ~" D9 @+ D2 @" Z+ [& Z
4 O; K5 l& ~8 ^4 W, M2 X稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
; w  r; s8 v, Z7 F: ^9 ?: Z! F5 m- e( P3 K
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
  F  x2 a9 U* S* K # k2 y* F# b* Z* p
转自:动态网制作指南 www.knowsky.com 7 R0 g% @0 b9 Z0 h! ~( M

. W& d! t% w" ?- {1 O. Scolor=#0066ff><html>0 i2 Q2 i. z6 a: r4 _7 e+ [
<head>title=default server page</head>
/ H6 X: r0 K' h* P7 G2 Y' n5 n<body>Default server page</body>$ O/ _% Y# ^# ~7 ?: m- y
</html>
- o/ @2 Q: i' j; y8 Z/ B7 D& ?
让Apache 2为PHP做好准备$ g4 [9 r  F, C/ e

( C% c! W+ o, W# N, h# D从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板|  管理工具| 事件查看器)。0 f2 x1 e( E$ c6 o# k2 |* `8 ~
* K# f3 }% s: Z- ]5 b  k
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
# E5 f! n$ O  a1 v4 G, \  g% A/ J8 Z% p
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
/ y5 \" S3 U/ {" `4 r% _2 C8 B
1 {( D1 Z1 z# l8 q转自:动态网制作指南 www.knowsky.com4 J6 d6 y2 A+ t% ]4 c: h' Y

8 M& ]7 m2 r) G. i8 S# DDirectoryIndex index.html index.html.var # index.php6 a% h! q3 ^6 a3 j: z" u2 W& d
' x* h. c# l* f8 `% }7 j# j
为了允许Apache处理PHP页,要删除注释字符(#),变成:6 E3 t/ G5 P( ^7 x' ]

3 J" u+ x- }; O- H( X3 jDirectoryIndex index.html index.html.var index.php
* ]9 Z! C4 `) Y& x  
# S5 O) e! N: F0 B4 `% \0 X( O0 t0 V5 i* x9 d5 k7 B9 O6 q3 W; \7 B
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
/ z( f3 R5 h! y$ H) J8 h" j6 x! ^4 Y
安装PHP" L5 }, ^4 }! F# O& j9 D+ c

5 {8 r% v& A( V# w' V8 ?% ?. }5 ]6 Q# u- P6 b8 T
虽然可以下载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 Z; y( N! q& ^& C& s6 n3 P. r( E/ E( x. h

9 A8 T& A+ ?/ X& P6 l' b, @
5 H' U+ ]* c$ f/ x8 D配置Apache 2来运行PHP4: s/ Y) z* ^% s( p! ]

8 `5 Q) k, g/ N. E6 l( B4 T转自:动态网制作指南 www.knowsky.com
2 G# g  U! j7 T. }+ Z; c8 {现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:, L, C: G& N0 G! d! K4 ]4 o4 t

- f6 C, w& [6 m. JAddType application/x-httpd-php .php
; |/ R0 }9 M5 L) h) p1 L
" S0 D) p7 G8 i将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
' Q+ a- a* b1 a& g% g* V# w
. c( m+ Y+ r4 s: }doc_root = c:\apache\apache2\htdocs
" v/ E2 P+ r- jextension_dir = c:\php\extensions' e7 f+ a- ?) H: w
session.save_path = c:/temp
4 P9 I) _2 ]; ?" G( u
, k5 i" z" L, k; \. T8 [0 l在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
2 S5 n# J" D4 w6 S4 w3 N' j
& T( f" w7 {0 Z7 A' p下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
/ R9 Y  {- I4 T( @' s/ s& ^& X
' D2 ^9 I! w/ z! G" T5 T! gLoadModule php4_module “c:/php/php4apache2.dll”
3 @( L; i; g6 y, E7 [. m$ x
& t, u5 N0 r' W4 ?$ C% K如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:4 m; f' e$ ]/ {2 C& n6 H
- D. D/ b" r- X; D; R" |
ScriptAlias /php/ "c:/php/"
' F. t, \+ g8 Q8 \Action application/x-httpd-php "/php/php.exe"
. }" P! N) Z, u- V7 R) k5 a: ]) Y2 Y- F6 |  I3 i
一切都搞定了吗?1 w" @& W( ?5 C5 C$ V2 ?

) R7 w: Z$ ?+ X5 W; }转自:动态网制作指南 www.knowsky.com
+ T, ?( x7 g8 g
! W0 g6 G$ @. \8 C$ p" g( S保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
) O% x+ d- R, }9 l8 W4 x. ]0 L- s! p7 |
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
: @" s& o5 @; b4 e9 W- R 2 Q! n9 J5 Q( M- {: O0 i
apache –k start
. f* b* d1 b9 k0 |
2 E2 |* j' f2 |# r) j3 R另外,如果Apache正在运行,可用以下命令重新启动它:3 ?* ]; e2 v1 i2 K

) b( Y3 ^3 X0 b; C$ i* o. x9 ]apache –k restart( Z, }' j' G/ M

: A8 B) W) H+ r$ S从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
# q; |) U- ]3 @0 v1 v% \1 N& _
5 }7 _& Z4 P( n2 W5 C* a- o4 H要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:9 U7 h+ L( E# ^  F# j' a3 I3 V
( Y& e  [7 u* y2 {% B
<? phpinfo(); ?>
/ Q" c( h+ W  ^( `5 t3 D; } & g) s( V+ z( ~: {9 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。4 l4 G: [5 J5 a' U! k) X
& @7 e1 P4 c! q$ Z# C$ n7 l3 U
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。' f% x7 T" F4 S6 W6 v0 U
* h% N9 J: m# v& e9 b" r
(出处:百当网络学院)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-14 18:07 , Processed in 0.018728 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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