|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。' _0 W* `! C* a6 @: G& A5 `
! Q1 s$ g% z& x" F' e: x8 G# i3 c( k- u( `9 x; g
转自:动态网制作指南 www.knowsky.com
$ L% R) _0 `7 W2 u' ?在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。* @. k8 T% P3 w7 D5 F
5 U2 v+ d* A* ?/ m$ a o
" x- [2 e9 x4 l7 y9 ?9 g
/ M: v+ K. q* \/ t
使用正确版本的Windows V# r, g/ D' T$ e. N# T
& Y8 G% }# R# @! [4 V% a
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
& b' I2 E2 t4 D- S6 d, u2 k" Q7 R2 S" k+ Y h" M# [4 V' d
Apache 2:源码还是二进制?
1 o/ D" r) G( C/ g如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。+ P& a) M6 C. l; H# }
# e! k4 z0 z5 K" K }6 p, |% J
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。& i( E" s" n9 [' g8 j: F2 H
) M0 k( b ~. R% `3 B8 C+ T2 Z双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
, y# C% I/ i' z" O
9 k1 L- g) K2 z9 F3 i& |5 O; P7 c1 L6 c图A/ j! u/ I' X/ w+ A3 u8 l: C
; R. Z7 Q9 a) z8 f& f$ A. o8 P
) D. X5 p4 E! ?9 b! `+ S" m7 T
; @/ f; k) |2 h0 M
转自:动态网制作指南 www.knowsky.com: T7 D3 h6 `+ C2 _8 Z
6 p2 [. T" {& w% k正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。0 [ B, b% g: d+ B& U8 h2 w
* i0 W$ H& v( P+ U9 [! x& z0 d, b4 a& h
--------------------------------------------------------------------------------6 P! F" r% e7 O
$ ~- T& B; ?0 P+ G: }/ ?$ t
安装提示
: {- e) ]' [+ d3 z! S建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。0 A9 r: s* {6 q( O
1 V/ l G n% A) ?' S9 m
: g. C! e: s& d1 a, a--------------------------------------------------------------------------------
% w3 }9 M. Y$ u$ K
# w- X0 e+ I, p7 V( t$ q
2 v. }7 q0 n% S8 ^; H/ @稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。" R! ]3 N; @4 m2 n1 x0 M8 _
, C: o+ h" B/ \1 `9 R& x" h# t/ P
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
, B; B' O: G1 W
/ a Y! B; F" S* T+ c* V6 q# o; e2 z转自:动态网制作指南 www.knowsky.com " q2 c! F( S# H" ~3 e
, c: f) V3 \- q6 `7 S; n
color=#0066ff><html>! o. R- ]' F9 k
<head>title=default server page</head>
6 g$ `& \% L0 ~& r# \" S7 E<body>Default server page</body>. B' a M. P7 g( O
</html>
' Z6 |5 P/ l3 z( @0 Z
* j! M% q# R+ Y6 w让Apache 2为PHP做好准备; t$ b" A. R3 F" t: l% T/ y. N
1 ^& ^6 n% s C5 _/ n+ \. H
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。" ]4 E, ]+ H+ e5 e$ ^/ d2 q: C1 _
$ f0 |1 E* c, S. n, @# R: Y! X# l令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。 y, Y ?* [7 o7 a3 z/ T9 s/ p) A
& S; S; z0 M$ @
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
7 z6 Q+ Z$ i/ J/ B% J+ M3 C% f- S! {* z X) j
转自:动态网制作指南 www.knowsky.com9 d) U0 h- U1 L1 q. x
. i6 B: o6 e/ D
DirectoryIndex index.html index.html.var # index.php' S, e4 H$ b4 E- K9 Z* X1 r
7 }( s5 e) d5 x( L% M) P" {; d为了允许Apache处理PHP页,要删除注释字符(#),变成:; x9 l- M7 b1 D* U! ~, x
3 `1 _! h& y( }+ C, cDirectoryIndex index.html index.html.var index.php: \6 }3 g( g' R, S- v: G9 S6 O4 a
& r( u, g$ `- s/ [2 b% Q
5 S# k; m' O# }) P- T2 ~还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
, S- F' [/ H7 J) t" i" r$ i4 l, k# `, v% k
安装PHP& @9 _9 i* O& y7 T/ x! d5 e M7 v7 b
% G: {- o. C# k) q8 v B. u% n* ^+ ^$ F' e
虽然可以下载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手册,它有多种语言的版本可供选择。/ n; b, w$ g+ k4 c1 i. Z
; `8 g7 A# L! Q7 N- \. L
9 R5 m/ s4 E* u3 q0 `
6 I; A5 m! ~- H& C1 s$ i0 h( {/ v2 d: Y配置Apache 2来运行PHP4
2 x: j+ J' s }, ~" M# q4 _; G! U2 J: |" ?: R$ B$ J, {
转自:动态网制作指南 www.knowsky.com9 J5 V; v B; D! _
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:+ y7 V& i, T8 m8 K! [! Z
3 \5 u0 f! c3 B4 v: GAddType application/x-httpd-php .php
. Q9 ]% B6 {1 J. b% o
`7 S, A5 G# s2 m2 N2 O4 l将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。. l& b; z/ `$ R" m
- s$ G. A0 a# t0 h# k! m
doc_root = c:\apache\apache2\htdocs
7 ^6 i* q5 z8 i7 Rextension_dir = c:\php\extensions
7 q* Y3 }& {9 d2 ?session.save_path = c:/temp
1 M# p7 q9 f1 d2 ]! \: P6 x0 w
! h# I% \& U' \, ?% `在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。$ d9 b8 G" B$ P/ X, r6 C
8 S) J- G* v; s! H+ e
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: & T! [% m1 c& k
3 d L7 j, G0 |" O9 J" B. K5 b
LoadModule php4_module “c:/php/php4apache2.dll”& d9 w( J8 o9 r4 J; u
4 q( l: ^3 J9 t: e1 H3 A如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
, h6 {9 I) ^) p7 r6 x
! w g& ~) q! W, l$ r/ }1 \ScriptAlias /php/ "c:/php/"
5 v/ {4 _9 R- J3 R( ]( hAction application/x-httpd-php "/php/php.exe"
5 G! M; x& I3 P# \, T1 ?' }) V" h
一切都搞定了吗?
5 ]' K* l7 C- F" Z0 u" x% V6 [
/ E% J; o4 ], I转自:动态网制作指南 www.knowsky.com
3 {; w! w; E/ s; C5 I! E# F6 ~3 W" T
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?: Q; u3 t0 A P& x9 p: e' _
6 ?5 V! \+ ~# m7 Y% D
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
/ ^& s( z C* y8 B3 Q
2 z: z8 T! R* Y6 t6 ^" sapache –k start
1 O7 i' r- R/ C0 G. {$ u
L( Q8 N( m* {; G! x) F! F) p- Y( v. H另外,如果Apache正在运行,可用以下命令重新启动它:7 k" U9 ^1 l+ d& f5 c- @
* O/ h$ t. b$ Y) V. c b2 ^ l! {
apache –k restart; Y% t. {% s4 N8 L% g
+ F7 G2 v- w; o) |" @
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。& E( S. w2 u6 j; T& N% F
/ h0 `! A* K2 ]7 q3 W
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
$ [# w8 g) p; A+ [' t
: g1 U3 H3 V0 [' M, A- W<? phpinfo(); ?>& Z ]( T% V5 h; S, [9 p- v9 F
- w0 R! Q) P6 @' u, `/ O `- z将文件保存到主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。2 H! k% h$ U' F7 M. f
5 R3 \, X# [4 z; q: q: _虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。$ H- n1 e9 E% Z
; X. w6 F Z' m! Z2 U% b. L$ ?" l(出处:百当网络学院) |
|