|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
7 f: W" {; s, ~3 r
% W/ q9 \; F! |' x- }# T5 G: W& w6 d) Q8 x
转自:动态网制作指南 www.knowsky.com
! @! T0 z( ]: V7 p v4 y! t6 M在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。& I) s; j# N$ U l) K6 G
! f$ w% _9 O' Q# G6 J$ K$ w3 E; Y
8 M) W% g* w* I0 Q+ ~+ a( q% K
, O9 ~, N3 o* W d3 I
使用正确版本的Windows' W" |* {& y: a; d4 e. o2 p
g" q4 l, C* l) t% X9 D
首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。# P& G2 A: M e3 j! O9 A
5 \0 @$ m" D. K2 a. U' qApache 2:源码还是二进制?: ]: M/ u5 ^7 S. B0 R$ a8 H6 g5 G
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。% }2 D$ f0 o, t. m' S2 v. A4 D9 o
# H8 }- F" y( j( o( V2 U如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。
3 R" a" [( H6 f
% ?" w/ n( B1 Z5 P N双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。- B4 v+ D& k2 ]3 O, j- `
9 V \+ p5 f) n9 l" J$ ?8 k1 r图A
" k- s {* r2 d* q$ D+ J4 t6 [; }% n, u7 i, A5 O/ X9 Q: B* x, ^
7 F7 c( N' H, g- C2 u3 P
$ A% F U5 | I) q! L* b
转自:动态网制作指南 www.knowsky.com' w2 h8 k/ r. K! X* N0 z, N
4 l/ J7 Q6 c8 a
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
}+ ]' O3 V$ @& ^* [' o+ ~4 I: Q; y& N! G
2 \9 Y( K0 T1 N( R; ]+ y
--------------------------------------------------------------------------------. d$ d: N- `7 H" X- D7 Y& j* u
" Z+ n9 q: `& P: n6 s; l2 g. t
安装提示' N# L6 a- {* v1 ?
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
) a5 @# g8 ?5 U' k( R4 M9 V: g0 y/ F. a- j% Y J2 D# A: n* v1 q |
0 d1 j5 U. e1 X' A2 ^! ?
--------------------------------------------------------------------------------
/ V% N( l0 M/ ^+ h7 M0 c6 g% Y* b* ]; W* e6 d# v7 c3 k5 Y
* O5 S7 @6 C6 z% V" d8 X" L" f1 F z稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
+ ?1 x, O# Z6 j- c0 m7 Y* x( r9 k0 |7 @( V
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
$ Q( P/ w7 q+ K$ `# V
% Z' w& f. U! z! x* E2 v转自:动态网制作指南 www.knowsky.com
( u5 N# F8 c9 M; Q8 N; a3 |" [+ ]; I' @ Y& y/ o" c
color=#0066ff><html>
8 U$ u0 y! v* Y5 Q0 g$ o% n" ?9 V<head>title=default server page</head>7 K/ A& P5 [2 o! t/ Q3 H
<body>Default server page</body>
* U- q: s3 l" t; G+ E</html>
+ l; X# \: p+ {* x: F. E" N' Y3 v7 ~2 s2 [; g) Z! ]5 A
让Apache 2为PHP做好准备
7 |2 a5 _2 v5 v/ `( u6 |9 `1 j0 b$ x- x, M( B& L; \9 |2 w
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。; \1 d: c$ x8 X* X
0 O) x, e$ u$ J% z$ [' J令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。+ U1 E: k) J2 M/ ^: Y: W! p
: X( J8 g' d, d. U& @' Q4 Z. PApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
% [ m, H2 K0 d1 z. o
, k! I2 i3 m9 c3 ^+ x转自:动态网制作指南 www.knowsky.com) Q% L+ {' h7 K, T, B
6 f# B! [7 `' q9 C& v0 mDirectoryIndex index.html index.html.var # index.php
8 c9 K6 {# M9 t- l) q; Z
8 m& S( E4 c! P, b& n2 w6 I为了允许Apache处理PHP页,要删除注释字符(#),变成:
2 h2 x* B8 Z) j. P2 w
4 U3 Z6 t4 T& v, H) \# _. zDirectoryIndex index.html index.html.var index.php) G1 J# w. X7 L$ B7 S
! d. P, r" e: r; `' R( ~! u% Q
/ Y h$ b) c& q0 ^ A: K
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
7 Q0 c; _$ \5 g9 R& x2 V2 v3 F) J9 W6 C% X' X
安装PHP
5 o, w4 ]! D% i) P7 F" \8 ]* H0 Z8 F: I/ e4 S9 M2 `
3 ^, c- j9 ^% O$ N4 V0 ?& |虽然可以下载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手册,它有多种语言的版本可供选择。6 k! o4 l! Q7 s9 {
/ |& `% z$ p( U g
9 P6 P( v! ]( E! _- u9 l- J
4 {( W( q4 m1 g4 L) ?配置Apache 2来运行PHP4
: q0 c# f- ~0 C) U
4 A l8 j. d- `* `# _4 q6 G转自:动态网制作指南 www.knowsky.com
) r Q1 s" G* I2 S9 V现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
5 ?+ W6 i7 O. B: j. w7 I , L2 J+ o% k/ ~! ?6 v8 j
AddType application/x-httpd-php .php
$ {+ f- \ ^( j% e+ R$ @- ~
# T' d) ~" W* Y( M) m7 }3 c0 H2 s将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
0 h( \3 c- N7 t9 j! v2 i6 f
2 B$ a0 D+ x0 j, xdoc_root = c:\apache\apache2\htdocs6 A: d: r# r$ ~0 f9 z
extension_dir = c:\php\extensions, I! v% p* w7 U" g" A* w
session.save_path = c:/temp
! s) ~4 H- z- U6 ?" W ( C/ s U1 h$ p0 u. I
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
! R8 |' d5 P- c0 t8 o; s: z
. m W$ [6 }8 x) c- k0 \" k下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: " l6 s5 p1 S' v% }, J; Y# e
, H$ w! S! a/ J, F1 LLoadModule php4_module “c:/php/php4apache2.dll”
2 c) L: n% b& I$ y9 x" E
4 ~% ] `+ v3 J7 I5 {0 r9 V如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
1 ^ Y! c1 W2 h; Y- v- w
; Q9 d7 S+ h' b1 x( _ScriptAlias /php/ "c:/php/"
3 _6 o6 R! r6 z, FAction application/x-httpd-php "/php/php.exe"
4 h& z+ `4 n6 g% |7 o( t+ }3 ]
! A* S# N' C; c r E一切都搞定了吗?
( N; ^2 v' Q7 h
3 K# d$ H' a6 H9 q8 u Q转自:动态网制作指南 www.knowsky.com
& P3 ~. l9 G" K2 n- k2 ?# H& i* ?4 }5 [
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?# T! ]4 k; {9 j
/ {: H: d% r" W6 ^8 i要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
; Z8 N0 |5 G; f1 R1 I * z& m# \ B/ S! ^; j2 ~2 N
apache –k start
7 R" i! F- O: A& R( l" A$ B & `/ k) M% {1 E2 K
另外,如果Apache正在运行,可用以下命令重新启动它:; W% C p0 ^9 Y7 e2 I& R: t4 Z
+ O- \5 I v. t) P x
apache –k restart/ }% T+ o, Y a0 H1 f
8 X z7 I3 [' |6 L% j* L从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
* r# k6 m+ n" z0 \# z8 C) o( i" s1 E9 \) x8 d' Y/ \! _
要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
7 w- A6 E/ ?( D$ `- y8 o! }( H ' B+ G7 c y; W! C( h
<? phpinfo(); ?>
) \2 g! c5 E7 U 6 ^3 z2 X( D2 u
将文件保存到主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。! v" A* ]8 J `, M1 I0 z; t2 O
: O8 y) ^. q+ u
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
; L- e7 k: j; a& j; C
' ^/ R* v; ]9 G+ I6 ]3 O' }& I1 L(出处:百当网络学院) |
|