|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
t0 U4 I: N, E9 k6 e: a
E# \4 c& N; j6 C
% T+ J( b' Y! b2 p转自:动态网制作指南 www.knowsky.com
) |% J6 d0 U0 i; L+ I在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
; J6 P8 e; j+ L8 L2 [
8 s; E( C6 R7 K4 b2 o
; r8 u/ S* D' ^5 g o' c6 m" o2 U1 U6 M: x; y L3 D# N: u( \5 l4 ~
使用正确版本的Windows
' C2 C; ]" v- e7 [& |" e8 U n9 Y
, O% V1 }2 Z( \; n ^首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。/ R1 a2 \, c' T4 L1 p3 |+ L
4 C" ]4 V# a! }0 f2 V0 BApache 2:源码还是二进制?) t3 h) x% H3 D: R! y
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。( b/ \7 T* l( s/ o/ G
8 |- @8 b# g3 }! E% y3 t6 h' p如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。6 C% K6 C$ t2 a9 O6 W+ x
6 e) \" }: V3 L% h/ h
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
# N- ?( Q8 V/ G- h& d) [1 s% q( [* E- O$ l* j
图A; ]/ H! Y( g3 j4 u( J
# z; [2 g" I/ y/ `0 n2 D8 ?8 C& u3 y0 x0 W r
+ U& S0 z% `, |- ]( G3 a% A+ O
转自:动态网制作指南 www.knowsky.com
6 W& ^2 f6 @/ Q6 \' j4 H
& {& l }) y: B; ^正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。) }7 [0 k6 k! u$ ~9 s1 _. b0 p3 {1 D
# a" A) S4 f9 ^6 `
! D) |' S2 l' f; D
--------------------------------------------------------------------------------
( e+ {/ c5 ~/ e% D+ h+ g% l( |2 ~, v: _, r6 X
安装提示
1 }& ]! g( B& G/ h0 J. n! u0 b2 r建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
/ T( }) g+ Y; \. O5 S
. c& G7 q' _/ Z/ h! o+ j) `5 z$ U, J; Y& w* ~# l& k) ~
--------------------------------------------------------------------------------
* w5 E! o4 I* G* z; H; ^% O
/ M( p* C( v- M; X4 u& a; o
. j; k% P, A+ P8 F1 R稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。" Y8 ^5 x; N/ i ~% L# a
' J- T/ k7 q: S* c0 V* s0 E; E然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:; o6 b- a \) \& B! M |1 C1 M
, y% q' f& Z/ M: `转自:动态网制作指南 www.knowsky.com ' `& {' ~: F, x$ L8 ?
! e* U" I, h8 p" m. k& k7 X( I. y
color=#0066ff><html>
, ]; d5 Q- b0 X" @<head>title=default server page</head>4 S0 r' V/ n, P$ E$ Q. n/ U+ g
<body>Default server page</body>$ I( j- X0 s$ k8 S
</html>
: l( B: O8 ^6 }& K( b; X2 A! j4 Q1 J0 t, W
让Apache 2为PHP做好准备
Z" f; ]$ g7 \7 D! c; e( X9 a' ~+ r% ~3 h) r
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
, G5 h* v7 i# e |" C. F% @! Z' Z5 h# \- a: w
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。, _4 r9 ?% f! J
/ {+ Z3 ^4 ?8 y$ X+ L
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:7 \1 ^* w/ A/ u8 A x7 a
6 r$ _ `" Z; M转自:动态网制作指南 www.knowsky.com
# v+ \& t- V% g8 M, o- _0 n: L. Y: F ) Y j, ~: _1 P" h; N4 e
DirectoryIndex index.html index.html.var # index.php: y3 P3 `: i5 U' g8 E" ]+ e) F
; g' U8 t/ | P% E' a. a; [* |
为了允许Apache处理PHP页,要删除注释字符(#),变成:
& R9 K0 u+ ]3 b2 P; y
! [, d) l- |1 f' c+ x3 x3 ^DirectoryIndex index.html index.html.var index.php
5 _1 U& _* f4 V: G7 Q' m 3 l& U+ V1 S% w- R: F
* s/ p( [' M# r# ]. R0 {$ K- s还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
3 r( A! x/ C5 r9 n1 I, G$ l/ O, t9 h
安装PHP
$ w- G/ R. _1 h" `
7 M& ~9 ~+ Y5 B0 f+ z0 ^* `
. e: s5 D# ?: _4 T7 y4 e, U虽然可以下载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手册,它有多种语言的版本可供选择。
8 h! i9 u) c+ e! V" y1 J* l; G+ Q: `) ]! \$ \8 U# L: `# n
6 _- x/ E* R; p/ m$ ~. b6 R ?- b5 F9 H/ u/ K6 i- R1 ]7 j
配置Apache 2来运行PHP4
! B1 |# `1 [- O! Z& u: Y; @8 ]0 P
# i% g) Y- h/ D5 E1 _转自:动态网制作指南 www.knowsky.com$ O/ [/ `1 p. P- v- m2 B1 r0 U+ ]- Q
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
. Q* F3 C. K* ?0 E- p! P 2 A* d) ?" Y/ H" e" v. H1 A0 ^
AddType application/x-httpd-php .php" B2 r2 ]4 I& h
$ S4 c' i/ G) s9 G ?( W
将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。3 S5 ?7 J t! S/ u
! Y, w) E7 C$ |- w: r' |$ x
doc_root = c:\apache\apache2\htdocs( L3 a8 q" ]+ M! U9 h3 m
extension_dir = c:\php\extensions
- i; K2 u: E" D/ F9 q+ Z$ @session.save_path = c:/temp
; j- f1 r+ F" }, ~4 D
~! R- K; q" x在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。) d8 w$ J0 e- x' C
' E7 g8 D: `0 R0 B/ x
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
: c! u/ Q, k( ~# ]
E, r- Y4 F; g/ q/ [( W% _# }LoadModule php4_module “c:/php/php4apache2.dll”
5 U6 `" V E/ l" j4 X, Y 5 V) T0 J9 n+ ?9 z: W; \) Q6 d. m
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
; ~) E: E' _. e" Q3 d
7 ?+ [" b3 L9 f, W4 bScriptAlias /php/ "c:/php/"/ e, G3 W5 M8 j
Action application/x-httpd-php "/php/php.exe"
2 n/ ]* T7 _; d( v! G8 \, W( M% N% x2 i7 R& k3 L- ^, ^& [
一切都搞定了吗?) \3 D% l- U9 Q* a
2 w- ?8 u9 C; j4 t' `
转自:动态网制作指南 www.knowsky.com! J7 ?/ Q8 H& P2 x
: m0 V0 b0 d5 y保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?5 X$ }3 G7 G/ {+ Y% {
2 E4 ]4 X6 e! O: E' t要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:4 B8 Q. c8 ?" v' j
+ e2 _! E) d4 H3 T; [# a- ^& xapache –k start/ S, N0 x! X8 C/ O" x, I) K
/ d/ K, W5 c0 s* B* ?另外,如果Apache正在运行,可用以下命令重新启动它:( v" ?3 Y1 n/ @ q" N
( C2 J# k; O, ^! O- r1 v8 Q. Sapache –k restart! m, K% H% J/ P! P" v- i7 B) {
7 N; ~% `' i$ c. l8 V+ G- s4 h
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
# i7 u! ~1 R" i+ b b7 ]
$ a3 Q" d% l$ S4 J要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:
! [" T* n, y5 ?& x
/ [6 s6 R! |; S/ Y) j<? phpinfo(); ?>
' ^5 q+ N" F/ r1 r0 ?0 Z/ ?( o) J
0 r. U( k( r7 Y. j+ f6 J将文件保存到主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。0 t1 o3 Z a1 M& Z, D( q% L; O/ f
& {% o% Y$ b1 f b" [
虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。! s4 M* v' ^/ s9 u. @7 h; Y
5 O K8 L& c6 I0 O* r
(出处:百当网络学院) |
|