|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。+ |' }$ V9 A$ p( ^8 c. N
( d$ N7 i' I% g3 D: j
% v+ }& a8 X o4 j, r' f. `0 C3 X转自:动态网制作指南 www.knowsky.com
8 _$ J! N6 |) X在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
! h7 d3 M/ U+ x2 K8 f
3 D! T# t) c2 D& P6 Y 8 C. _% n: G& z4 {2 A+ D
, m2 F* o$ z% B" w0 A
使用正确版本的Windows
/ K/ \. H% [. @" Y2 N' c2 A$ b+ i& \; y5 K9 A- Y c
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。# r5 N: k4 ^: `, j
; i+ F6 |7 M& ]1 y! cApache 2:源码还是二进制? Q7 S; P: a, ~) E2 a' |
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
1 F. m) A2 b) J& O3 w) B/ n, b+ A' b& a, ]! ^
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。
% |- c; ]5 @3 q0 B q3 L2 @& R' Z% |# V- u
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
4 V& }* ~- M( h! M+ @8 f7 v- X
( l6 N0 q/ B- q图A+ f, N" C4 G8 B: r7 c' c
" N+ i M3 ^/ d% d% p' M1 h- C. x4 b5 f) r* W
/ {- j! R9 G. F! [& _8 e
转自:动态网制作指南 www.knowsky.com+ N8 C( s% O6 X& W% y6 j, G
! Q3 V9 |0 R7 O, H6 h正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
% @+ O# \1 [8 z/ u& R4 R$ A) s& \4 x
X) m2 @. j& f+ J
--------------------------------------------------------------------------------# A- @ }* V9 B: O& @$ P
& B, A! W8 h: U
安装提示
% B; E7 v$ _0 B* k- ]0 Z( c建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
/ l2 C5 D% ~% c% x* C& @( Q9 p$ s% N. P) i
) H" w& {" R6 C/ a! |" ~--------------------------------------------------------------------------------
6 y+ O j: F+ ^
! J& A& H0 ?: x! |7 N. c
) Y8 e+ D1 z$ K9 h稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。$ z. {/ w" s" U; @
' ]6 U" @" E4 K( y$ G3 c然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
- ~2 f2 @) r0 E9 Z! [6 t, v6 y6 k
& R- s+ B- ^4 K/ ^9 _& @转自:动态网制作指南 www.knowsky.com
" E r: d; d K% S8 w) o5 ^$ U: H0 v4 D: e) x
color=#0066ff><html>
( g$ H3 R, N8 R0 E<head>title=default server page</head>) ]4 m$ y1 p( D( M; b6 |
<body>Default server page</body>
! B2 K% p9 G7 B6 U& f, U/ E</html> , I4 e: y9 X8 ~* h$ x
' x5 j' i1 \4 I( j' d0 [
让Apache 2为PHP做好准备
: E; Y* o2 w( o D2 i9 H; t+ i0 { F- k; P8 W
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
: w! }1 x! h! X+ ?' g F. y/ x: K% P0 u2 l y# D
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
& d b/ e$ o' u7 h
0 O5 j% O2 |8 O& w5 pApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
+ w/ F- G# B) W' f& _3 D
/ K4 J- ~7 f' @3 E6 r转自:动态网制作指南 www.knowsky.com
; n m8 x/ s9 n( `5 [
1 B5 G$ L, ]# O+ l! E9 q0 ?! rDirectoryIndex index.html index.html.var # index.php% |- w5 d' j! o6 B
/ J1 T# s6 q3 |$ w* p. t# q3 E
为了允许Apache处理PHP页,要删除注释字符(#),变成:
. V- _! C# @! M' H8 Z6 l a 6 i8 X5 N5 g+ ?& w z/ W3 Q: V
DirectoryIndex index.html index.html.var index.php
- I g' x: V9 c7 N# X- m 5 L: _. J: L3 v' K2 I$ z
% U" j8 n/ R! {8 _. w% X还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。: Z- @$ w$ J+ w, G F. v
3 |7 T' F7 y) T. |0 X) Z安装PHP5 _ Q: C3 M {7 W8 M& S* D7 t
# L+ _) r6 b; Y% l
1 R# y3 P# A' v* Q7 Z Q4 b
虽然可以下载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手册,它有多种语言的版本可供选择。+ w% T; u( ]* j& S2 i
# D# P; Y- n! \" }$ t* x+ P
/ M2 a' @2 C& M# A% N9 V
8 _# O; p# M# n) c( T+ D( W* }配置Apache 2来运行PHP4
& \: d$ G5 X5 u8 P; k
0 |) I# x$ F* V' l2 M; g转自:动态网制作指南 www.knowsky.com! M. M* u1 R+ E' O4 H9 G
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
; l/ ]4 Y1 K4 q6 j+ `" E 7 ]8 v' N/ }- p& O' b
AddType application/x-httpd-php .php. N# I( N* m; }6 X
" d6 f6 @) P1 G' e- p将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。$ a6 u' J# V! d$ D" i+ F
2 X! ?3 p# p) j: s8 wdoc_root = c:\apache\apache2\htdocs
" S, M$ i) G$ G. O) n( qextension_dir = c:\php\extensions; J k9 D% `0 |: j
session.save_path = c:/temp+ V8 X0 \. j% j8 k/ j
" R3 M0 I# J' ]0 F5 x在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。* v& t3 a, c% C, J$ k7 b
" I }8 Z: Q& d7 j
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
* ]( v$ E- t' v& V0 E: G' B2 d m! r, }8 w0 Y7 s6 `2 I+ j
LoadModule php4_module “c:/php/php4apache2.dll”
4 L) T4 h% z9 V Y. Y9 {
9 ~' x- f' L8 X9 t8 M- @0 A如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:* W" l9 V- o9 y
5 b' ^9 R. \- a! n! l; CScriptAlias /php/ "c:/php/"
4 [4 W# b1 o8 `5 W9 B6 V z. x" f, iAction application/x-httpd-php "/php/php.exe"% V1 A5 B6 W" T3 A3 d0 k
- X; O" l# G% A: v; h7 l
一切都搞定了吗?: n6 X1 g- }/ q( g0 g* y9 r
+ V& d' k8 y1 `9 H& ~1 {" ]
转自:动态网制作指南 www.knowsky.com
: Y3 h0 @7 b6 o2 `6 R" V$ h* X; u/ U/ {
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
9 M; G( ]1 n% ]3 z. E' T( b7 \9 Q4 G: e3 s7 W+ n' Z
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:5 K* }+ [1 ~, g" v4 m
9 j; k; }. l6 H; X' k6 j
apache –k start8 D h0 R5 d9 z4 Q, {
) K: s( g' V- Q. R另外,如果Apache正在运行,可用以下命令重新启动它:- T$ E% t# U$ Q( E
, X4 l" U$ v) V0 Y7 K% m$ p/ y* eapache –k restart6 [- M3 ~3 `! [! A# @ p, S
& Q) o4 x: z1 }& N4 z从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
$ j* @+ l: P+ c4 F% q3 Y3 P
5 O r; d( v V要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
- u" |8 W4 J) i8 v' ^* v+ x
, k! P! P5 |; |# h) D<? phpinfo(); ?>
' B4 w6 E4 i& c, m
, N# h8 N8 W) a$ \' o$ i将文件保存到主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。
9 \& a( e: m' D5 L7 p) U" g6 x8 R0 ^$ A
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
Y, V9 K$ b* C) B/ B- o2 y& `5 { u A% ]5 _6 N0 h1 a r
(出处:百当网络学院) |
|