|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
. @$ W" s, r; g# t. v, v$ U& d6 R4 {8 A1 q5 E7 _+ y- i
& k# s( Y2 D C( T* \转自:动态网制作指南 www.knowsky.com
0 ^6 B3 r: u6 i J+ g h在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
( C3 Q5 G5 O7 y8 V
2 j5 O( r: c4 I5 [% x
* ]# _9 a7 D* y# a1 Q5 M2 T3 O. k5 c# ?) Q" x
使用正确版本的Windows) }! Y; ]+ D# K
+ y5 G. E" \4 r5 h; _7 I2 Z/ x# v首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
0 p1 Z% s' v1 g( z7 {, K) `' F0 [
Apache 2:源码还是二进制?
! ?+ f& |+ K$ r. `如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。. \" M! G& m% E, o8 w
/ h5 {3 j8 P$ \6 E4 K如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。) Z4 w/ e# O# }4 u F
" I( Z6 m4 S0 M' a3 V, {- T& S
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。! C* x9 r( T, m) W& {5 C
% L% o/ ~$ L3 i# d2 i9 V1 b图A
- ^( i. e+ K1 c6 @" R( y- ~
' a- n0 W5 ^6 J% `* B# u2 W6 X
- C* ]% ~( Y6 b. e( Q& f" f5 R. b- o6 `! z
转自:动态网制作指南 www.knowsky.com5 t5 a' Z) C* P) w$ v( {& l
% Z( S" D0 W1 @9 c正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。+ h4 A- q* v1 d. H% R F* ^& C+ H* D
* Q4 [2 o+ u7 p# h2 w* ~" T7 t
* Q( ?- q1 m$ S! u--------------------------------------------------------------------------------
% L2 n+ ^. D' l" l! ?6 M
9 ?) }6 U7 g! N `4 u5 T# G/ `安装提示
7 [# p, j+ S# q9 E0 N建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
; a# }6 p4 }$ a; j' Z, A' k& z, F5 T
% }! C, T+ B+ e1 B# n8 D& g. p- @9 t% B
--------------------------------------------------------------------------------
W! @% V9 V5 z% `' T" T
7 c& V; M7 z* v3 q& [7 S1 {5 O; \
, Q/ l) M5 P3 f/ i; i# l8 I) u稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。# g4 h; b/ `' Y, I3 z
- t1 d$ H* B8 n, }4 R; k. L然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
y0 |: I5 v) K! j
6 w& X3 a- Y4 V- s e9 k9 T转自:动态网制作指南 www.knowsky.com
6 `1 u7 T d5 }0 x& m; I" [' b& t/ ~% K
color=#0066ff><html>
0 C4 \% H) n/ g% j% _9 T<head>title=default server page</head>
: a X+ s# U5 C3 f) b9 v6 l<body>Default server page</body>
4 L4 `* S1 @+ @; Z% `( b. m2 B</html>
9 T R$ X* c3 p4 f1 \/ l0 n9 E2 \$ M- @* E& E& X+ t1 I
让Apache 2为PHP做好准备
9 S3 ?% N7 g$ m3 _4 c8 y
' Y& j M/ h( X2 l- K# @( E( Z' q从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。1 B. B# d" H( K0 F& R A5 ?8 J
1 r+ d. u# j$ D0 W* r令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
7 X) |3 N. p0 E- z( d; p+ l4 E! ^* A8 @2 {5 T
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:5 u$ G- e5 ?+ q; e7 N5 f, P1 [
% J# G: c; b+ }7 ^" s
转自:动态网制作指南 www.knowsky.com' j# Z9 l! q4 L: }0 W
/ B! X' c! ?6 j9 q/ r
DirectoryIndex index.html index.html.var # index.php
! l. y" Z0 G* d. g3 R8 W1 ? $ z. q' y+ }. {' Q& A/ t
为了允许Apache处理PHP页,要删除注释字符(#),变成:
8 ^4 |$ ~# \" ^* k x% s! X ' x+ c( l# T/ d& ]. F9 Z- T; K
DirectoryIndex index.html index.html.var index.php
) Q4 x3 M! _# o- j% X# Q# E & g& P- O% {- r4 R$ T$ b
7 a. F; O: Y, c还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。& W+ I$ e" a, V8 l) D% z
& ]; h) u0 n( v3 ~
安装PHP
) B/ R- Q1 r, v' k+ R; h
. ^# W& ? b X
5 b/ g! P' P, Z% O; L, _虽然可以下载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手册,它有多种语言的版本可供选择。
{; m" W' z# @/ ?4 I
. X. [' }3 d- d' i' O; w 8 h) n6 D9 F- C6 n
% i/ L% E' V" v配置Apache 2来运行PHP4
# S7 n8 I+ c3 p0 h$ v. F- m- s0 ^
0 Z" w6 E4 Y$ I转自:动态网制作指南 www.knowsky.com: V) r$ }0 i9 U1 }) z
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
9 p5 q" M/ f+ Z6 p, b
3 M( r1 W( v* B" b) ZAddType application/x-httpd-php .php3 ]# s2 H" a; n
' M: S% A; L( S9 Z' Q0 i
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
9 X2 W/ S: w6 _) _% C* G% J$ C5 n 4 s3 d% \4 T+ u2 C6 ]/ X
doc_root = c:\apache\apache2\htdocs7 g. }: {! J) |2 c! i) k
extension_dir = c:\php\extensions$ `; [% o a r. L. F4 O
session.save_path = c:/temp
+ M. Q: `8 M6 @4 J0 R( K4 v( | 8 Z0 j$ @ i6 ^6 H/ @! m2 Q. S/ b
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。' r# O! n9 h+ o$ r4 Q9 a
. \7 r6 `; g0 |下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行: ( C4 F. ~2 [$ {" [; ~8 Z
/ g1 z5 b2 u% X0 o7 ^2 T5 TLoadModule php4_module “c:/php/php4apache2.dll”
( u( j* W% L. W0 u : J" F4 q3 p0 l: ]/ m3 {. _* _
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:& g8 a. b @: v5 \
( G ~4 b3 b" O7 A6 uScriptAlias /php/ "c:/php/"
% p( H0 Y/ c2 |Action application/x-httpd-php "/php/php.exe"
: |% m) f; \; g4 S: f" v8 ]1 v6 t% X8 o! B6 E9 ]1 y
一切都搞定了吗?+ U3 ^0 ~" H# e# N7 a$ F
$ Q* e$ m& Z" U5 k$ y; x转自:动态网制作指南 www.knowsky.com
) f5 l7 B4 V/ G8 Q, H% `5 b
4 x+ P; d% r1 I! U! i( n" h/ }保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?4 e" a8 N! { ]9 Q" p U
% J' C* ?% }8 O9 p
要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
|) q1 {* `2 \: i4 C
$ Y, ^4 E% [" R. k8 O i( s4 Lapache –k start, I0 U/ j N+ z& \
. \( D' i3 f/ L另外,如果Apache正在运行,可用以下命令重新启动它:2 y9 s2 I8 n0 X8 E
( l6 e. X2 a, C4 T$ F" J' V
apache –k restart
* o( i+ `: I3 \/ k7 `
; I* B# p7 _- |" u( [- D* Y8 L7 d从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
3 j' Z. j4 @: s( @4 q9 P1 ^ }9 G
) i; L2 `2 v- u2 p% C2 g! E2 P$ Z要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:/ B; K8 V& ^6 G J
1 o6 u' h6 R w3 o' w! ]# X<? phpinfo(); ?>
W) N3 M: {4 p. f# J& [
6 _- t [! _9 b- s, C: M: c" 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。; D# i8 w+ w6 M* D
& o, E. i3 h; O7 ~虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。
5 P$ a5 \# F- D4 B- R: O0 d1 N
( b l1 S9 C# Z% _& {(出处:百当网络学院) |
|