|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。3 j& }+ ~- \2 B7 s% o8 J# ?
) C$ }1 ]% d0 O5 M" p! [0 @! s9 e
转自:动态网制作指南 www.knowsky.com0 z8 h m/ p S3 L
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
) H1 U. f" D$ {( v7 ]' R( d, c' k# Q8 [7 z
4 E. S; }+ t1 z# v r3 i, B4 g
. i7 L3 t* P8 M# L0 l6 E5 M使用正确版本的Windows& H2 C/ L4 |& l" H
2 F- V- Z' M P8 R9 e首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
7 t$ i8 `7 M; h6 t* l, w3 T- g9 B2 ?" n- ?2 t
Apache 2:源码还是二进制?
% Y8 v2 D! ~$ D$ F9 T! R如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
; w" \# E4 V3 w8 c1 f) s" W; W4 m% [4 R! `$ g/ J! [& U
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。/ @ E; p$ [% J, |+ ?# a3 V- h
v6 h" s7 J- A& {7 }
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
: V+ h9 H* r9 ]8 B: _+ v B+ }8 l# [: _! N7 h% }! {7 h
图A
( Y) D* ]. U. O2 a w9 `& z6 o7 @: R9 v) R7 c/ r0 t! W* e0 R
- ~0 R) z4 Y. L
9 Z; _) M$ \& i# v9 C
转自:动态网制作指南 www.knowsky.com
( y7 b2 V0 h" t2 C
2 \- [6 z0 W9 i, T1 ]8 d% C正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。1 b, f+ m/ A, _; Z
: o" `1 G; ^* j/ Z+ D2 q& s
: u9 l0 B0 X- |6 W
--------------------------------------------------------------------------------
0 F1 D* v/ ?( \) e+ b9 v" g2 s# f
安装提示& ~) d U) Z4 t! i
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。7 _4 T& k- T7 Y1 \+ E$ G& }7 _
0 { R& H$ R z$ D m- _0 v1 V& ?0 {
# y& t' x# K4 w4 y Y
--------------------------------------------------------------------------------9 Q5 S, V+ N+ n' f
- V u/ A7 z5 P+ Q# ~, c3 z2 m: Y `/ ^; l0 M) U3 r2 w1 @ l4 U0 e: k
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。
: K5 k. c7 n# I6 O: O
R1 q, `4 k' {7 B6 b7 B然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
- N% f: I* G" X! U# ~8 _ ( s: D0 k! f# N; W# _6 ?* h
转自:动态网制作指南 www.knowsky.com # J" m; C% ]) @6 v( {: A3 Q6 q" @ ~
4 S( E2 r4 r2 j% A. Ncolor=#0066ff><html>
. s9 y% L6 S8 y4 o5 C/ H% R7 u<head>title=default server page</head>
! ]. h7 J, `- w5 l1 y- }<body>Default server page</body>
`0 _. Y# _& G. y</html> 8 @# \; I; E" a8 ?" W) b
# X- T: s& V5 F z- @: [让Apache 2为PHP做好准备. f, K2 ^! l4 K0 t4 w( F+ ~7 P
9 ?2 |4 g* H b- k; i
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。9 \6 R6 W1 @( v: F
3 \3 R- e' P9 g4 o- m* p9 W令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。. u6 x N4 y3 H
$ E7 v0 C, W- s3 |, W* q {Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:: N v4 ^( U5 K; S# `9 n# ?& ?
4 N3 g3 U2 T! K% q: m( e
转自:动态网制作指南 www.knowsky.com- ~" V0 }, P$ H. o, O" a' Q6 i
& o8 D8 ?! O' v; n' x! K& z* `DirectoryIndex index.html index.html.var # index.php
+ [8 D" K, |# p* p$ {5 k , W. J* D/ o: N& e
为了允许Apache处理PHP页,要删除注释字符(#),变成:
5 T- ~; ^# j+ a $ Q! k$ A2 Y8 O# A) U. u
DirectoryIndex index.html index.html.var index.php+ |) S# m B/ Y6 ]
, ]' P3 n( V8 J; Y+ f& U* F' f# V/ Q5 h6 s, h7 c- S
还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。 W% L6 B* R/ D% |
' a. r; c7 _$ u7 c
安装PHP
g. f. p: s. Z: l3 d; F. E
& T4 ~2 c) p1 a$ c5 S. @( Y8 |
* z, l j( A4 D0 i- I& [- |虽然可以下载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手册,它有多种语言的版本可供选择。0 g5 U# S, h/ v& H" j
+ |0 x( g5 D# }0 h
8 _' o" i% M1 }: B- F/ e5 [/ p6 N* @. X! S9 {1 w: J
配置Apache 2来运行PHP4& {$ v2 p& n8 B, v5 ]9 M& M$ ~% J
5 y5 N9 _5 t7 D' F3 c& n7 p) o8 `$ X转自:动态网制作指南 www.knowsky.com
; w, n( _( T# r$ }- `% V ?* B& ]& t现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:) e0 b, o" A: Z/ X' h4 Y0 N
/ j S# c+ S4 G. z$ K9 f- d" R
AddType application/x-httpd-php .php
; W1 p; {) m8 g; g' T, w
! O/ H: E8 J y0 D- V2 E将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
2 @4 a7 [' ~ m7 C. _! o
6 z6 f: [" ]$ q7 s" X" S. @( Ydoc_root = c:\apache\apache2\htdocs
- t7 ?. ]: j$ Y# u; rextension_dir = c:\php\extensions2 ]# T3 ?5 ^( y) n
session.save_path = c:/temp
6 o q3 }4 y/ v' x7 x* ]( t
# s3 q* a0 s7 l! E在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
* p1 _, _! P: s Q6 s
) U$ _, W6 j4 H3 k6 ]. p) e下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: 2 J/ T6 @# s; V
/ B2 J+ j# v" }9 {5 t( nLoadModule php4_module “c:/php/php4apache2.dll”
_& X% f2 J9 ^; i6 P! p, L + o! @+ h4 u, F7 K3 J H
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:# |2 F, ?; _1 m L& K2 y& m
& l) y. P0 A* Z( Y* i2 I) ^ScriptAlias /php/ "c:/php/"
3 K* n% ?; e& @6 E3 AAction application/x-httpd-php "/php/php.exe"
$ ?6 r _& @% E8 ]7 e8 M
' a( z" [3 @9 I7 T# R一切都搞定了吗?
+ `& d8 u: P/ J
% c2 Q8 ~- b# k9 c' ]8 L转自:动态网制作指南 www.knowsky.com
- v; w2 \; b. E
7 `( x, B" Z1 j% V+ {5 M保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?8 b4 N. e* t6 \ `( A1 V
3 {' i, [$ b2 V
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:' X( L! C9 j7 h, @4 `# ]( D
: k' w" |$ ^& |6 k V! f& z$ m2 H. Fapache –k start
4 q( l3 u2 [ P$ Y ! }# v2 A5 C3 i, l9 B
另外,如果Apache正在运行,可用以下命令重新启动它:: `: c7 O7 d5 o8 X6 V( {8 [+ S
( n4 ^5 b& C, k- j8 sapache –k restart7 N% Q$ K: ]8 f" j" U
0 t7 R! e6 o7 Q2 O5 g从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。, _4 Y1 f3 K7 d! ]+ ~
. W! J- i* w# `* Z5 [' o要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:, k$ X; G5 |$ W' W7 {! e! F
F$ H' p- S+ H+ ]/ ~& g
<? phpinfo(); ?>! r& b, q$ ^" D, M& T8 x
9 r0 z$ n$ j; v! g将文件保存到主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。/ R' C7 p- S0 U; ~
) } {$ _! c. l3 d0 `4 e; b" |
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。% Y# T$ R N% d$ g- w6 v5 B
1 B: f. K2 N' ^& l8 j ]4 |
(出处:百当网络学院) |
|