|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
; l1 W6 H! d( E- D; H$ A$ ^( w
: b/ N' a; M0 A9 q+ P5 K4 ^' e1 `; T% k) L9 u |
转自:动态网制作指南 www.knowsky.com
* V' k+ j7 U* l3 f在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。& v8 o; {+ {& D: R
/ U5 t6 \4 \& y; u) }
8 _& ~# h R# z9 e: Y5 `' f0 Y1 u4 K: C; \9 y, d5 G7 J( T
使用正确版本的Windows1 h" z' ^. Y3 t1 u( |! n a3 Q
0 t; g( x6 [1 v- f. B. `9 \首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
4 R; F+ e4 x! J/ H! _
: }* M6 J, `( q$ lApache 2:源码还是二进制?7 h2 G% h: q q
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。
Y- C8 S* S! B c
1 I; }% f) b9 ^( Q- `如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。. A. X) \4 P. f. E; }
6 D' u& K2 {% Q: }, Q/ X
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。
2 ^' j7 L9 ?& N% x; [8 J% k1 [- R8 }1 C7 P) D" ~& d2 P) R
图A+ t1 r$ U! p, W; o5 b
. r% {$ }4 V, M; v/ K3 c/ v, f% D
1 D- U2 s) U- I" \( f @
- I- G. p- U# @/ I$ Q8 `5 h! d转自:动态网制作指南 www.knowsky.com
2 k! K- V. B0 K& }& p' t( E: P8 J" f. L" y1 {0 e
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。9 E; ^" K8 p1 N$ S
6 Y+ r! ^ M0 A4 g, a7 y
2 d% J* F4 K# V6 ^; E--------------------------------------------------------------------------------
0 W, T; |1 m& L& w
! @: L: ^& o3 k8 [0 T8 I/ {# Z安装提示7 F4 N7 c- `+ _3 }$ G8 ^; H0 d
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。
6 h; v9 g+ e8 m3 b* ?6 S/ A! I: V( ^) u; {
: ?% J" o1 U/ q/ q5 J- C--------------------------------------------------------------------------------$ e2 R# R8 ~2 a' I$ J: ]9 v
+ ]1 E" a- R( ?1 p
7 T* u9 b+ C; p" r5 B/ B6 ?
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。! q4 W) u" ]) G$ U- s
! S0 C8 W; T Q: R) S. M
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:
- N# p W; k. Y, |8 f w% e: d # F$ D* _+ X8 e% @! P) h2 W/ {
转自:动态网制作指南 www.knowsky.com
9 |: D% `0 l' Z' k- x( X5 _, _" t3 \) w: c
color=#0066ff><html>" A" w1 \: Q0 r/ E: Z6 _
<head>title=default server page</head>! }' [' M/ ?$ B" w8 t
<body>Default server page</body>0 u( v: D$ i- l) l) h6 b% u
</html>
* h! D+ @) N2 t& v( C B, R4 F- Y2 x" n) l
让Apache 2为PHP做好准备$ D- n+ v/ J6 K7 H% N: V* j! @9 |
) {; o3 n- Y3 \, j6 b# I从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
* z( e' I" |0 O3 Y- U3 O# C, q6 v1 ?6 H# J. I
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
# M7 _7 h% n8 o: N, W4 F: X
" @% b2 T5 u0 nApache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
$ {! C4 d0 [5 L) p0 }8 t- N! j" Y) t* C$ f
转自:动态网制作指南 www.knowsky.com" N) }6 L1 |' j) [; S4 ^
: s0 l8 B9 b6 E! K L
DirectoryIndex index.html index.html.var # index.php! t; G8 X/ Y ~
; W/ e2 O, L! Q9 E# a为了允许Apache处理PHP页,要删除注释字符(#),变成:
$ b1 G; {/ W2 y% f* h# T0 e& y 1 `: U% t7 |1 G! _; L
DirectoryIndex index.html index.html.var index.php
; @3 x, Y- p' U1 l# l E& e2 _: `1 h
% Q7 k+ G2 u6 e$ |还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。7 A% P9 f! w1 |2 `
6 R1 F2 H }8 D" P4 M5 P/ \$ r: j5 b
安装PHP w% `' w5 R, S c4 Z; U1 b
8 K) P% h* j ?5 L" @7 q4 C( ^% D
9 H2 W( r/ z0 F4 C- c虽然可以下载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手册,它有多种语言的版本可供选择。& b, A$ |) w; L! \7 b
" j' Q8 e4 @0 O# p. B$ O
2 u/ u }" ?- c0 T
; K& k) _- n' J' r( n+ w
配置Apache 2来运行PHP4+ h( b$ `; W; t/ k7 [
* a d, s& V( N( w4 Y
转自:动态网制作指南 www.knowsky.com
- K3 z! L# w# j现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
, E e: o0 O0 e4 a! }; B4 ^ 0 A0 @3 c" _3 c7 C/ R, N2 `
AddType application/x-httpd-php .php
, E. y3 B' x' p' M# I
% r; u8 T9 f7 o) L" [将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
' S( I) o9 j1 _4 @1 u5 G
; l$ p+ z: Z4 ]doc_root = c:\apache\apache2\htdocs0 N; c" H" Z& X w1 z8 O6 g8 \
extension_dir = c:\php\extensions0 z+ @' r: }. Z4 }
session.save_path = c:/temp7 r1 y4 F) h3 L$ ]
0 e& ]4 {/ ?5 S- L) t8 M
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。
5 W5 y+ z3 x C5 ]7 S$ D; M7 E' D" |
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
5 Z1 F( t$ U; r6 ?" s8 i- g
$ j* |3 Q. ~2 QLoadModule php4_module “c:/php/php4apache2.dll”
( n. ~8 N) m( f: O8 ~6 c
! V6 p. ?0 s/ |# S, b5 ^2 m6 |" o( R! q如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:# ~% Q* {, y/ D: h
" [6 d% h9 J0 _. K7 z' o/ u
ScriptAlias /php/ "c:/php/"" u9 T& O4 f$ f& \2 P
Action application/x-httpd-php "/php/php.exe"$ x0 v" ` t: i5 ^3 i, a; u8 |
: d# e* L% N. P- F
一切都搞定了吗?4 ?2 N, N6 ~4 f
4 `7 C7 q- s. H4 l) c0 X转自:动态网制作指南 www.knowsky.com
( p: f: S; ~, r& H( V* C, G" L1 u/ x6 D7 ] Z3 Z) v! K
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?8 l- W, U( r$ v6 b8 w
8 U3 i& n0 H/ B( t$ }/ M8 a' a. v! t$ Z要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:
+ z+ K8 N6 X3 H* s ( B# n& _' u8 z; g3 D R
apache –k start
' x/ a- q0 d/ u$ G5 I
& p6 Z0 z* K. D4 }" S6 e1 I另外,如果Apache正在运行,可用以下命令重新启动它:
8 J1 W: U; R) U4 u$ S! E: n' e + v' w3 X9 ]6 D+ @% b$ H, E
apache –k restart
# k3 X, _% V8 b, b1 d7 p" T6 [
1 {3 h; \% c# k) i7 }2 ~从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。
7 }6 v8 N7 T* _' q, L( s c- k
4 A% ]! O$ H+ C0 [3 k2 Z9 D* T2 X要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:6 g* p' ^; i5 {/ `- {# R J
4 Q! E" J7 N1 J9 @: t0 G0 X; V<? phpinfo(); ?>7 n# Q7 C- y$ m S' K5 {4 C( h7 g D7 e
5 o% l; }/ P! j* 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。( E; j- m$ t# s6 H5 z
) U6 G& f7 @: g: E: g# K& {' ?& n# k虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。6 s" M( D( q* B) U
7 |. E$ r; _, y(出处:百当网络学院) |
|