|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。3 l, p2 x0 g) R; K$ U$ a5 R
" z9 w" [# {: k# ?/ c' f# R( G# A8 |
转自:动态网制作指南 www.knowsky.com, T( R/ I( c# S) u
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。8 y0 _. U" b8 S) U& R/ J
5 W- X/ `9 D. X$ C 5 G3 d7 m8 L; h* H
! r9 P; R; X3 ]4 n' Z! S( j
使用正确版本的Windows
* u' u- [$ h0 S, b
+ {' a+ z& t9 A1 ?首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
+ ^) B# P. t/ T5 U4 f& N& w7 U. H, ?, h
: [9 w" J. o: I1 YApache 2:源码还是二进制?! R; ~ ]. B( Y6 Z* Q8 b
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
: a% p5 a7 @% T7 [% L9 C' H2 A" L" n0 c8 n6 N4 W
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。3 a2 C. ]( z, ^; {1 L5 H
0 _. M1 t/ G7 r双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
8 b1 w- N2 s8 j- F d& I8 K$ f
4 p9 B1 K$ `5 s/ [! I图A. Q5 v, P& [9 Y& ^3 y
" ]0 i! ], O4 B$ Q9 {# |/ N# U' b% I5 C+ V
. n- Q$ |& K( x" f
转自:动态网制作指南 www.knowsky.com% C; H4 k+ i- J/ B! S5 Q) a6 r
9 D7 }, m @: g7 A+ k
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
: L* } R4 }- T1 H% j% X& `- H8 ^8 _7 b. X' J
( R1 s2 i1 v& k3 d
--------------------------------------------------------------------------------% |+ ~" b2 S7 |
- j! h3 c$ z8 B安装提示
! m$ I/ c6 _: J建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。" Q4 z O: G9 H
6 M9 T% o9 L3 U3 L2 y
2 J& ~ f; g3 \4 p, ~- t--------------------------------------------------------------------------------' f9 e- x& f& S1 D" P$ }) Y
5 q" w$ ?# {" Y" u3 ?& b
- {( \" w) B9 ~# J0 }* Y* w
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
: X7 K! k- M( L' j
- r+ K& [4 x( B! j8 [然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
* Y9 Z. @* _ j4 k. D& E6 l ) O, Z8 |2 C+ k" B/ v; e, \! n
转自:动态网制作指南 www.knowsky.com ' H- f. _5 x3 s3 ~7 q3 i A
M( l3 N8 {/ a7 p5 Icolor=#0066ff><html>
L& p" e! G* @9 V7 C; P<head>title=default server page</head>! ?% w, u/ u: R" Y0 v; Z+ f
<body>Default server page</body>
, C/ ?. L. v2 Y( _% l' X</html> $ [, `/ c* E1 ^
% p, ?" \" k) O% p" G" R
让Apache 2为PHP做好准备, h0 Q2 \2 f5 D3 N
0 A: \% G5 I1 e+ |* h
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
. \0 A$ p5 E$ ^( r& j& o7 d6 B* Z& r5 j2 e2 B" X {: h
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
" d; n. c# M- m/ x& m7 c& U% }; ~0 a# D- Q {! z& ?
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:+ u( `5 ?7 a9 d9 m
+ o- D- U1 @% u* I$ [, u$ N转自:动态网制作指南 www.knowsky.com+ b" i# @& c, U2 v" y
8 {. v- G! ~% b+ z: I
DirectoryIndex index.html index.html.var # index.php
; O" T$ n8 _: i) W/ H, Q f
: g; {" e. f3 U3 f5 m# z" [$ w }为了允许Apache处理PHP页,要删除注释字符(#),变成:
/ r7 D' ^2 g: V+ Q5 [( j 2 @! _' C6 P* V7 }, {7 l7 E4 S6 s; T* D
DirectoryIndex index.html index.html.var index.php2 x4 b& M. a8 g7 V* W8 R/ V! y
$ W9 L4 @2 X8 Q' k7 a; ~
) u- ]7 ^! P! ?0 b4 s
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。% G& `) n6 e' ^* R
/ N4 P" `9 I! G+ p
安装PHP! ]) c$ @$ I0 B+ v
M( C7 g" g# `; c# z" o' ]$ Z
$ R3 Y) Y' m5 N9 `4 I- M! d6 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手册,它有多种语言的版本可供选择。
# I8 ^; F/ T. g8 k- t; _$ U# C
1 @4 t; }9 S$ l$ l
9 Z4 z) E+ o+ j# ?3 G5 j- y* y& r( p" l; ^0 }4 G0 a
配置Apache 2来运行PHP4
+ H! a3 _ r2 V4 o |( d. t% ~6 J0 l6 }+ _1 x; _' T! l
转自:动态网制作指南 www.knowsky.com
2 j4 z9 R" o: {6 g( ~现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
$ i6 C) p; o! x. M) P" S1 K' s 7 a/ u% I$ I8 r5 Y0 Z+ l
AddType application/x-httpd-php .php+ k, b- L# k1 Z# p
: D3 I- i2 i$ a r x将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。0 K' k" R! g8 c
& l% [0 z& ^- f
doc_root = c:\apache\apache2\htdocs4 M! G+ ?/ ~* S) i. U/ I4 b
extension_dir = c:\php\extensions
7 B5 ~- i6 t* \8 A* s, _: y2 N# K6 Isession.save_path = c:/temp
9 ^* J+ r9 d# d# m& M1 \ + i. a _9 {4 L) A9 r4 \( {. Y/ x
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。3 w9 y2 j# J% V5 e
4 o k; S0 I% R- o3 \
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: - h( @8 j) n; o+ o8 t( u
g6 I- G& f E( `3 W: n1 Q
LoadModule php4_module “c:/php/php4apache2.dll”; _0 k3 {6 T' t/ I" b0 a0 j+ e# C
) b* J. o" }, W- y) N7 L如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:# @% {5 l5 Y$ L# _& C
% ?6 X& U/ _! x
ScriptAlias /php/ "c:/php/"7 s4 H2 N+ Y) \5 B+ a$ Z6 _
Action application/x-httpd-php "/php/php.exe"
! [8 U( e% G9 g! z- t+ o% z3 m" E3 d# s6 U4 G! y8 O9 u
一切都搞定了吗?* t" P# Q! r7 T' e W0 e b- E
7 S( C `. }- l" W9 q9 d
转自:动态网制作指南 www.knowsky.com/ W# [& \" q: A7 |. p0 p3 }2 {
3 F5 k: _. @: n. M保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?4 P' c2 Z8 M R9 x
* I l: v/ I3 Y! S
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:+ z( v' r! r; H7 O* a
# [3 f% ^. Y6 `1 z3 Q/ ^! W
apache –k start
% z& z' `" y2 [3 Q1 e# h . T3 ?' t! m1 W( c
另外,如果Apache正在运行,可用以下命令重新启动它:
- Z3 Y5 a$ o8 b, i+ q) [- a
+ V/ j `: V: f& R+ japache –k restart8 \4 S+ [9 k& Z0 ]; c' U% L
( Z# L: z( I9 l从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。5 ?: y' P% h$ p
$ L" G% i9 F% L8 `2 j
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:& l: L/ O0 J1 \" ^
) j3 a/ d5 j- a; C" S# B<? phpinfo(); ?>) D" r9 S6 n, D
1 ~- ^/ G+ _$ ` x将文件保存到主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。& w, R3 N3 A. S$ r
) r, S F* U) y3 m( i虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
1 ~" t2 R$ Q, j$ J- S j2 k5 Z% ~* ^& _# V: E k$ x
(出处:百当网络学院) |
|