|
|
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。
: l& G$ H3 _0 ~9 z( _, l
3 i9 n/ \) }; k; X, j4 L. }/ _3 Y/ G: G4 n" t
转自:动态网制作指南 www.knowsky.com; s. I* A" |$ j5 e5 O8 @% t j
在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。
4 z- I. @5 L; r' \+ o# i9 T/ v# c4 E% B1 x% f
- ~ }7 t- P f1 ]8 q- L( b0 |
" `" M6 O: g" Y, ]2 `
使用正确版本的Windows' x) s/ H8 s3 d" {0 r
0 P% o2 r# X( ?, u# G6 d首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。
; |8 ]; r- o5 L0 u) `/ ]$ E9 N/ C) f- [# g
Apache 2:源码还是二进制?& W9 |) j4 Y; }# A1 R
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。1 E1 S8 s: ]- p$ C% Y1 I% v# W! [# Y
, A1 K- S" @) H+ [
如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。 O% q2 ~2 x+ [9 Y( l! v7 c) O1 ^
! V) }9 K2 r2 z% d1 R" E8 f
双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。 @# x' ?7 J) {1 O+ Q
* v0 e% L8 |# s3 V' x3 b( V
图A$ `- S) h6 U- Z
+ \, J% o* G% ^/ V# x$ o
5 |' M# G( C3 l6 ^* O! D6 V4 Y3 t( ]& ^4 j, L2 q" c
转自:动态网制作指南 www.knowsky.com9 G2 i# W4 R: B Y+ D" `
4 u! G) O; U4 @, N
正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。
% ^' @. | q6 A5 C, o4 |& I* p5 g) y( p! i& }
! S6 W$ ?, l' q7 d% V& x. e
--------------------------------------------------------------------------------
+ j6 E1 n1 n( x" T* m+ p9 \! \# u. n
安装提示
' P. A( _. p- s$ \建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。6 p+ [* j! v1 I/ h1 I: z
$ ~$ u9 s. F' r7 |
6 B( M/ K% I! b9 z) l" m9 C--------------------------------------------------------------------------------+ `* G- {+ l6 F7 h! o
* [, b0 _) z& l$ m9 t/ G, f& w
* A! Q9 @* u- S3 c& @ f
稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。) g& j9 `0 _4 O3 Y9 n- _
4 U4 ]6 C4 g& K: f6 X
然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:& ]( D$ S- Y# g) p5 k2 E
9 p l }6 D% X8 h" K' S
转自:动态网制作指南 www.knowsky.com
: x& L# n2 b7 U
- W) y/ y4 F1 @# ?" R8 F& Y; Kcolor=#0066ff><html>" Y" A/ B: I- p8 C t3 J6 ~
<head>title=default server page</head>2 T0 g6 r' l& d& k
<body>Default server page</body>+ O/ w! P/ p2 d% a. I2 ?
</html>
% V6 P1 M5 Y9 o9 q5 j! p. W F/ f
7 ^5 G# o- C, R8 O让Apache 2为PHP做好准备! L. G' w4 ^4 Z- m
, Q5 T. ~0 _% j3 I7 l Z6 i: |
从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。
0 y0 P/ b0 _5 q0 E. e9 K. z9 _' C+ c! b4 Y6 l( {/ @4 Q
令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。
+ |3 g; }+ A& n9 V2 P2 B3 n- t% Q1 G
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:
+ Y" n8 @' A: i. \# u/ B. a& H& R S U- g! Q! D, D
转自:动态网制作指南 www.knowsky.com
. f m+ R/ h% p( o/ y: X4 c+ A - x+ f. s! Z x" G4 r
DirectoryIndex index.html index.html.var # index.php
5 A/ {; `, m- y O# w
1 s$ e, w: u0 X" Z c7 o- `: @为了允许Apache处理PHP页,要删除注释字符(#),变成:3 `# h, i1 M8 `9 @2 ~
$ ` k" D/ i* j+ @DirectoryIndex index.html index.html.var index.php
" K4 ] T8 L, S1 E! r 2 J" v; P' r3 k6 r
# a5 u: X& M( Q6 S3 _+ n1 n1 K; a( z1 p还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。
% l. v2 I& \2 N1 `: i4 [8 e5 Q
- A7 p; \$ r/ G, ^安装PHP
3 o- M* ~3 \- D' e: Y( O" v$ ?* A8 ^6 v
5 ?2 d: N- m& L0 G% 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手册,它有多种语言的版本可供选择。
7 S' ]% j1 K% Z- `# U( o2 t z7 @/ ?$ V7 C- U
2 V O% F# p" a& C2 k
1 m4 f/ d5 ]; c" y8 m6 }- O配置Apache 2来运行PHP4
% n* S f; z& M6 g9 i
^. I8 x u7 u转自:动态网制作指南 www.knowsky.com+ U1 A, I$ k8 {, N. H* H$ @
现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:
* A1 |" [, @" y' o 0 Z( T0 z7 H5 J. T" u2 O
AddType application/x-httpd-php .php
6 ?! ]# W! p9 g/ I2 b, g& E, \
+ ]# g+ u% o5 }' T. Q, q将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。
9 P2 g) M |* x s8 }; |
2 W7 Q( {2 ]/ idoc_root = c:\apache\apache2\htdocs g+ j% T8 m" O
extension_dir = c:\php\extensions8 V7 n+ C, `3 f% r, L G
session.save_path = c:/temp
, t' [/ o. a$ ^# [' U & t. J6 ~, t( h
在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。+ |" u3 g { T& T, ^# O
0 h X# b$ x: w+ {% z4 [* s; ~3 j
下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:
. D* l1 X2 E8 p
& L5 K' _ ^7 {* E6 `; v9 u& OLoadModule php4_module “c:/php/php4apache2.dll”: |; f0 t$ v! `
; C N* K$ v# B- q& }2 \0 S' O1 Q
如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:
: }6 \8 P. p0 C7 Z, N0 \' s 3 _( D2 x3 x: v' h
ScriptAlias /php/ "c:/php/"/ \* @# {: c% t" Z
Action application/x-httpd-php "/php/php.exe"
8 p) f) y* b. {$ R1 Z @; g1 c- h% }- Y
一切都搞定了吗?
# ?* A8 v" ?8 v4 r4 K) l" b, F( o- q$ K" l
转自:动态网制作指南 www.knowsky.com
( G- }: i. K& h; }" \4 ^5 ~; f& T' V& q$ W7 G
保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?
% }. ]4 `8 @8 V6 A- r6 U( O$ z
- ~) {: A- H- d8 q+ x要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:$ C) i$ _* B" U( Y3 \$ D; W
6 r% V0 e+ [, G9 A
apache –k start: p3 P$ ?& u& X0 v
2 q6 [/ ]! f8 j( I* p. L) n8 G
另外,如果Apache正在运行,可用以下命令重新启动它:
1 k7 b2 f7 K. L+ d- s0 B 4 W' o/ ` `1 q: `; V
apache –k restart
5 _" T5 x2 M4 t( Q1 h Q, N 5 q0 W9 a8 @" v, I' ~
从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。: ]+ i* X$ y4 ]0 I. t* h
" W3 {. ]6 p8 h/ @3 I要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:4 E# g* a% ]$ P1 B/ Z' F4 e; g
' M5 \% W" I$ ~# l% X<? phpinfo(); ?>
0 h- Z0 K) X+ r + [6 a/ S$ r: L( P8 G* 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。/ t5 i6 H' q: S% S
- {' U& e& U6 M. Z; g" Y虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。: p3 ?$ ?) w2 y. f6 W) P* Q6 v
7 P7 H3 N1 I# ?! `
(出处:百当网络学院) |
|