来源:http://blog.csdn.net/WapWeb/
本节内容适用于 Windows 98/Me 以及 Windows NT/2000/XP。PHP 不能在16位平台例如 Windows 3.1 下运行。有时我们把支持 PHP 的 Windows 平台称为 Win32。自 PHP 4.3.0 开始不再支持 Windows 95。
3 ^# B; |1 p) l有两种方法安装 PHP for Windows:手工安装或者使用 InstallShield 安装。
/ m: N4 d9 f! |3 C# A8 i1 U如果你有 Microsoft Visual Studio,也可以编译 PHP 的源程序。
* R8 D# E T& {% Q9 M一旦在 Windows 系统下安装好 PHP 之后,你可能需要加载各种扩展库以实现更多的功能。
; m {* w7 Q! F* D; ^/ ]% p6 M2 t7 kWindows InstallShield Windows版的 PHP 安装程序可以从
http://www.php.net/downloads.php
( A+ X3 x* L8 F获得,此程序将安装 PHP 的 CGI 版本,并且自动配置好 IIS,PWS 和 Xitami 三种 Web 服务器。
6 e2 H7 T1 ]: |$ G6 w- b注: 此外注意,尽管 InstallShield installer 是一种使 PHP 运行起来的简单方法,但是有很多限制,例如不支持自动设置扩展库。只有下载 zip 压缩包才包含了所有支持的扩展库。
安装好你选用的 HTTP 服务器并且确定工作正常。
* N/ B5 |3 o8 d+ \' a4 l, ]9 p运行可执行的安装程序并按照安装向导的提示进行安装。安装程序支持两种安装方法 - 标准,尽量提供最佳默认参数,高级,在安装过程中提问。
安装向导收集足够的信息来配置 php.ini 文件并且配置 Web 服务器来使用 PHP。在 NT Workstation 下的 IIS 和 PWS 中,会列出服务器上所有节点的脚本映射,你可以在这些节点中选择哪些加入 PHP 的脚本映射。
! o( V5 @8 a: E* h4 V7 N一旦安装结束,安装程序会提示是否需要重新启动系统。重启动服务器或者开始使用 PHP。
6 @2 U, i) r1 `& h) R. d+ y7 W2 j6 N! }. J, w& s9 ] 警告 注意,这样安装的 PHP 并不安全。如果你想要更安全的安装 PHP,最好手工进行,并且小心地配置每个选项。自动进行的安装程序只是提供一个可以马上使用的 PHP,并不意味着可以用在在线的服务器上。
/ }4 {: e: \7 s! [ 手工安装步骤 本安装指南帮你手工安装和配置 PHP 到你的 Windows Webserver。本指南的原始版本由 Bob Silva 编译,位于
" R$ \8 k; P" a( C# g; y# Whttp://www.umesd.k12.or.us/php/win32install.html
( p2 P) F1 y* l7 m你需要从
) y5 i0 X$ E7 P# _1 Hhttp://www.php.net/downloads.php
+ U) ~7 R7 G4 E 8 P' z, p* _/ j9 h x下载一个包含可执行版本的 zip 包。
7 m. k. g0 {7 s' CPHP 4 的 Windows 版有三种方式 - CGI 可执行程序(php.exe),CLI 可执行程序(sapi/php.exe) 和其它一些 SAPI 模块:
7 k7 O7 g0 d3 q0 p5 i: kb6 n6 H: Z* C) x' j9 T php4apache.dll - Apache 1.3.x 模块 + T0 u* s$ Y+ c$ o+ P, [2 x; H php4apache2.dll - Apache 2.0.x 模块 ( G4 B1 q- c% ^, L php4isapi.dll - ISAPI 兼容服务器的 ISAPI 模块,例如 IIS 4.0/PWS 4.0 或更新版本 1 l& U2 p$ o, ?7 P6 P7 Z php4nsapi.dll - Netscape/iPlanet 模块
$ C' Q1 p- n5 x- s, |- S" r. y% S: g6 R# | 最后一种是 PHP 4 新提供的方式,提供了显著的性能增长以及一些新功能。还有一个 CLI 版本在PHP 的命令行模式一章中有进一步说明。
5 G- I" o' Z, u" N2 u" P6 X, s! M+ q7 \/ h* g+ m1 A* {" P/ p2 z4 S 警告 4 L% `9 H+ `7 ^/ K+ p% `9 R SAPI 模块在 4.1 版中有了显著的增强,但是,在一些老系统中,你也许会遇到可能的服务器错误或者其他的模块例如 ASP 失败。
& P7 M/ ?/ Z# N g+ S DCOM and MDAC requirements: 如果你选择了其中一个 SAPI 模块并且是在 Windows 95 下使用,要确认从微软的 DCOM 页面下载安装了 DCOM 更新。如果使用 Windows 9x/NT4,需要下载最新版本的 Microsoft Data Access Components (MDAC),位于 http://www.microsoft.com/data/
不论何种 Web 服务器,都需要先进行以下步骤:
将 PHP 压缩包释放到你选择的目录中。c:\ 就不错。压缩包会被释放到一个类似 php-4.3.1-Win32 的新目录中,该目录最好被改名为 php。为方便以及版本无关起见,以下步骤中假定 PHP 位于 c:\php 中。可以选择其它的路径但最好不要用中间有空格的路径(例如:C:\Program Files\PHP 就不太好),如果这样做有些 Web 服务器会崩溃。解压缩后的 PHP 目录结构看上去像这样:
0 Q6 m2 H- H) m0 V- I9 E: l0 \6 A8 |- u b. p c:\php( g5 W& W0 m2 T k. S3 r$ r% k | +--cli. K! U( m! d7 g, {6 d4 p | |0 s! t+ v# d: m0 G' H2 ] | |-php.exe -- CLI 可执行程序 - 仅用于命令行脚本 |& p5 h; e; ^% x7 I3 Y8 q | +--dlls -- 支持扩展库的 dll --> Windows 系统目录; M% N% N9 r# i( b) H3 ~% O. h: \" ] | |% T2 e/ M, W+ e4 L# u ]4 {3 O% X | |-expat.dll% k7 m: w' Q2 r& V | | | |-fdftk.dll2 z& e5 ^7 r' {: r6 w7 ^0 I# H | |% w5 O6 w& k# S: l | |-... ~1 C: A' x' \7 M$ s6 B' k |9 Q2 u a, R; S4 }1 Y +--extensions -- PHP 扩展库的 dll | | | |-php_bz2.dll | |: F5 I# b' H9 F: ?8 j | |-php_cpdf.dll; `0 m6 K* T8 b/ Z, m } | |8 E% T A, m4 L3 N; i, h | |-..! Y8 ~7 u* _8 n% }- n) S | +--mibs -- SNMP 的支持文件6 V7 Q) M5 A: c. |4 {7 [ |/ E, E: w3 y6 p) v. ^' I2 e |! g) L* Y: u' H- T+ o. M3 a* O +--openssl -- Openssl 的支持文件 | | +--pdf-related -- PDF 的支持文件' t) v. u" l1 d8 j, |. k6 W3 { | |1 u1 I1 C6 j. y" @ +--sapi -- SAPI dlls% |4 S& @+ j0 k* D) a | | | |-php4apache.dll5 m! [! O3 m: s9 _% ^5 d: | | | | |-php4apache2.dll0 Z' l; n: X+ G | | | |-php4isapi.dll | |9 `4 A* w$ e8 _" l P | |-..9 @6 A# J9 Q$ t; B7 t9 \* d( z% g | |-install.txt7 h" j# g+ M7 H/ m4 K! B |7 u9 f1 q$ v& M/ R% h) j |-..% ?, J8 ^5 Q1 V* s. O% t; q( {7 m+ v/ _ |: r- g" r+ r0 L2 q |-php.exe -- CGI 可执行程序1 r0 s1 p3 z9 l |, L9 L& t; S: c2 {" D |-.. |) Y; v- Z: G: [9 }$ r$ K3 F |-php.ini-dist |& i" J7 V- i5 q; @ |-php.ini-recommended |) J3 W1 y* |) U' O |-php4ts.dll -- 主 dll --> Windows 系统目录4 a. c- o4 O t5 f5 b3 p3 t) D: d |+ x, h4 F q5 M3 X _/ d: {* m |-...
# V& R- b3 X+ m6 k+ X7 e0 @CGI 程序 - C:/php/php.exe -,CLI 程序 - c:\php\cli\php.exe -,和 SAPI 模块 - c:\php\sapi\*.dll - 依赖于主 dll c:\php\php4ts.dll。必须确认此 dll 可以被 PHP 找到。寻找此 dll 的顺序如下:
! d$ a% z7 ^" o y 调用 php.exe 的目录。如果是用 SAPI 模块则为 webserver 调用 dll 的目录(例如 php4apache.dll)。 ) E1 e1 o( t! ?" J- l: t/ p% K) s Windows 路径环境变量 PATH 中的任何目录。
% j9 s) _9 L8 B+ t* o 最好是无论使用何种接口(CGI 或者 SAPI)都确保 php4ts.dll 可用,因此必须将此文件放到 Windows 路径中。最好的位置是 Windows 的 system 目录:
c:\windows\system for Windows 9x/ME " a# I5 L9 n' K) s: | c:\winnt\system32 for Windows NT/2000 或者 c:\winnt40\system32 for Windows NT/2000 服务器版 c:\windows\system32 for Windows XP
下一步是设定有效的 PHP 配置文件,php.ini。压缩包中包括两个 ini 文件,php.ini-dist 和 php.ini-recommended。建议使用 php.ini-recommended,因为此文件对默认设置作了性能和安全上的优化。仔细阅读此文件中的说明并研究 ini 设置 一章来亲自人工设定每个项目。如果要达到最佳的安全效果,则最好用这个文件,尽管 PHP 在默认的 ini 文件下也工作的很好。将选择的 ini 文件拷贝到 PHP 能够找到的目录下并改名为 php.ini。PHP 默认在 Windows 目录下搜索 php.ini:
* `% \/ b$ R6 S v$ F0 u 在 Windows 9x/ME/XP 下将选择的 ini 文件拷贝到 %WINDIR%,通常为 c:\windows。 在 Windows NT/2000 下将选择的 ini 文件拷贝到 %WINDIR% 或 %SYSTEMROOT% 下,通常为 c:\winnt 或 c:\winnt40 对应于服务器版本。
如果在 Windows NT,2000 或 XP 中使用了 NTFS,确保运行 webserver 的用户名对 php.ini 有读取的权限(例如使其对 Everyone 可读)。
以下步骤为可选项。
编辑 php.ini 文件。如果计划用 OmniHTTPd,不要进行下一步。将 doc_root 指向 webserver 的 document_root。例如:
doc_root = c:\inetpub // for IIS/PWS: k; I7 }& i! R0 U- ] doc_root = c:\apache\htdocs // for Apache
选择在 PHP 启动时需要加载的扩展库。如何设定以及那些已经内置请阅读 Windows 扩展一章。注意在新安装之后建议先确定 PHP 在没有任何扩展时运行正常然后再在 php.ini 中加载任何扩展库。
在 PWS 和 IIS 下,可以设定 browscap 配置其指向 c:\windows\system\inetsrv\browscap.ini(Windows 9x/Me)或 c:\winnt\system32\inetsrv\browscap.ini(Windows NT/2000)或 c:\windows\system32\inetsrv\browscap.ini(Windows XP)。
按照这些指示已经完成了 Windows 下设定 PHP 的基本步骤。下一步是选择 webserver 并使其运行 PHP。对于以下 webserver 有安装指南:
.. Windows 服务器系列,Personal Web server (PWS) 3 和 4 或更新版;Internet Information Server (IIS) 3 和 4 或更新版。
.. Apache 服务器。Apache 1.3.x 和 Apache 2.x。
.. Netscape/iPlanet 服务器。
.. OmniHTTPd 服务器。
.. Oreilly Website Pro 服务器。
.. Sambar 服务器。
.. Xitami 服务器。
编译源程序 B5 Q+ V1 A7 G( p5 d 开始之前,很值得回答一下这个问题:“为什么在 Windows 下编译这么难?”两个原因:
0 B2 J5 a& I( G$ K Windows 下还没有愿意免费共享代码的开发人员群体。直接结果就是没有足够的投资去建立支持这种开发方式的体系。大体上,尽量做到的可用资源都是从 UNIX 下的工具来的。不要奇怪这种传统不时会出现。
下面几乎所有的说明都是“看过就忘”的类型。所以坐稳当并且尽可能忠实地按照说明来做。
需求2 Q& s/ t& B2 N' q% M% D 要编译 PHP 你需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0。要释放下载的文件还需要一个解压缩工具(例如:Winzip)。如果你还没有解压缩的工具,可以从 InfoZip 免费下载一个。
在开始之前,你需要下载...
PHP 站点中
http://www.php.net/extra/win32build.zip
的 win32 编译工具。
PHP 使用的 DNS 解析器的源代码:
_w32.zip">http://www.php.net/extra/bindlib_w32.zip
用这个替代 win32build.zip 中的 resolv.lib。
如果你计划把 PHP 编译成 Apache 的静态模块那你还需要 Apache 源程序。
最后,你还需要 PHP 4 的源代码。你可以通过匿名 CVS 得到最新的开发版本,一个快照或者最新发行版本的源程序的打包文件。
放到一起8 u, k5 P# c8 b, d# l 下载了所有的包后需要将他们解压缩到适当的位置。
% u/ g' G& n6 E6 n. w8 X7 n' t6 B 建立一个工作目录作为解压缩后存放所有文件的地方,例如:c:\work。
在你的工作目录(c:\work)下新建一个目录 win32build 并将 win32build.zip 解压缩到其中。
在你的工作目录(c:\work)下新建一个目录 bindlib_w32 并将 bindlib_w32.zip 解压缩到其中。
将下载的 PHP 源程序解压缩到工作目录(c:\work)中。
经过这些步骤后你的目录结构应该如下:
+--c:\work | | | +--bindlib_w32 | | |& h, o8 Y8 f9 U" R) s | | +--arpa | | | | | +--conf8 G0 ?* d! n* s! s D9 L6 S5 _ | | | | | +--... | |) R% f3 S' Q6 x @' c9 Z! x- r | +--php-4.x.x6 A: K% f+ c+ y3 U1 J( [ | | |! k" Y0 s% C) i+ C; F0 P( N | | +--build | | |: ~0 v: ^' D3 s" U3 M | | +--... | | | ~: `! k1 r% P7 z. r7 a, s: E | | +--win322 {8 V% j& O" a6 f# G- U: j2 M | | | | | +--...8 q0 f5 @; q J( Y | |2 o: T- ~7 i8 E: ^+ [+ ~2 Z- |0 [ | +--win32build8 k( z2 |4 T7 c4 _ | | | | | +--bin | | |( o, h- [+ a' B* b" T6 y! l | | +--include$ v0 B9 R6 U2 o! f. k | | | | | +--lib
新建一个目录 c:\usr\local\lib。将 c:\work\win32build\bin 中的 bison.simple 拷贝到 c:\usr\local\lib中去。
注: Cygwin 用户应该忽略最后一步。正确安装的 Cygwin 环境已经提供了 bison.simple 和 bison.exe 文件。
配置 MVC ++. I4 u" `0 X. h& m+ C 下一步是配置 MVC ++ 来准备编译。运行 Microsoft Visual C++,在菜单中选择 Tools => Options。在对话框中,选择 directories 标签。依次将下拉框改为 Executables,Includes 和 Library files。将其修改为:
Executable files: c:\work\win32build\bin, Cygwin 用户:cygwin\bin
Include files: c:\work\win32build\include
Library files: c:\work\win32build\lib
Build resolv.lib& M, Q4 b" t% M0 h( J 必须编译 resolv.lib 库。自己决定是需要调试信息(bindlib - Win32 Debug)还是不需要(bindlib - Win32 Release)。编译适当的配置:
2 A8 q3 I/ I( q3 E 图形界面用户,运行 VC++,选择 File => Open Workspace,找到 c:\work\bindlib_w32 目录并选择 bindlib.dsw 文件。 菜单并选择 bindlib。接着选择 Build => Set Active Configuration 菜单并选择需要的配置。最后选择 Build => Rebuild All。
命令行用户,确认你要么注册了 C++ 环境变量,要么运行了 vcvars.bat,然后运行下面任意一个:
msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
到这一步,你应该得到一个 resolv.lib 在你的 c:\work\bindlib_w32\Debug 或者 Release 目录下。拷贝此文件到 c:\work\win32build\lib 目录下并且覆盖同名的文件。
编译! R b& a& }# z4 E( l" E' {' ` 对于初学者最好的上手方法是编译 CGI 版本。
图形界面用户,运行 VC++,选择 File => Open Workspace 菜单并选择 c:\work\php-4.x.x\win32\php4ts.dsw。接着选择 Build => Set Active Configuration 菜单并选择想要的配置,要么 php4ts - Win32 Debug_TS 或者是 php4ts - Win32 Release_TS。最后选择 Build => Rebuild All。
命令行用户,确认你要么注册了 C++ 环境变量,要么运行了 vcvars.bat,然后在 c:\work\php-4.x.x\win32 目录下运行下面任意一个命令:
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
到这一步,你应该得到一个可用的 php.exe 在你的 c:\work\php-4.x.x.\Debug_TS 或者 Release_TS 目录下。
有可能通过编辑 main/config.win32.h 文件对编译做少量的定制。例如你可以修改内置的扩展库,或者 php.ini 文件的位置。
下一步你可能想要编译 CLI 版本,这是设计用于 PHP 的命令行方式。步骤和编译 CGI 版本相同,只除了要选择 php4ts_cli - Win32 Debug_TS 或者 php4ts_cli - Win32 Release_TS 工程文件。在成功编译之后你会在 Release_TS\cli\ 或者 Debug_TS\cli\ 目录下发现 php.exe 文件。
注: 如果你想使用 PEAR 或者舒适的命令行安装程序,就非要用 CLI-SAPI。有关 PEAR 和安装程序的更多信息见 PEAR 网站文档。
要编译 SAPI 模块(php4isapi.dll)来将 PHP 和 Microsoft IIS 集成起来,将激活的配置设为 php4isapi-whatever-config 并编译所需要的 dll。
Windows 扩展库的安装 在安装好 PHP 和 Webserver 之后,你可能想安装一些扩展库以增加功能。你可以通过编辑 php.ini 来选择哪些扩展库在 PHP 启动时被加载。你也可以在程序中用 dl() 函数动态加载。
PHP 4 扩展库的 DLL 文件开头都是 'php_'(PHP 3 中是 'php3_' )。这避免了 PHP 扩展库和它们的支持库混淆。
注: 在PHP 4.3.1 版中 BCMath,Calendar,COM,Ctype,FTP,MySQL,ODBC,Overload,PCRE,Session,Tokenizer,WDDX,XML 和 Zlib 的支持都是内置的。不需要加载任何扩展库就可以使用这些函数。你可以通过自己的版本中的 README.txt 或者 install.txt 文件或者此表格来查看哪些模块是内置的。
编辑 php.ini 文件:
需要修改 extension_dir 设置将其指向扩展库所在的目录,或者放置 php_*.dll 文件的目录。不要忘记最后的斜线,例如:
, F. F/ N! ?8 X! m extension_dir = c:/php/extensions/
通过取消 php.ini 文件中 extension=php_*.dll 行前面的注释来激活相应的扩展库。只要删除最前面的 ; 号就可以加载与其对应的扩展库。 例子 3-3. 在 PHP-Windows 中激活 Bzip2 扩展
// 将下面这一行从: ;extension=php_bz2.dll // 改成9 P. I+ c9 B" x; b- q% `2 q extension=php_bz2.dll
某些扩展库需要附加的 dll 文件才能工作。其中一部分可以在压缩包中找到,在 c:\php\dlls\ 目录下,但有一些,例如 Oracle(php_oci8.dll)需要的 dll 没有在压缩包中绑定。将绑定的 dll 从 c:\php\dlls 目录拷贝到 Windows 路径中,例如:
( l/ h5 z2 a3 `: i/ x9 t8 N c:\windows\system for Windows 9x/Me c:\winnt\system32 for Windows NT/2000 c:\windows\system32 for Windows XP
如果这些文件已经安装在你的系统中,仅在不能正常工作的情况下覆盖它们(在覆盖之前,最好先将其备份,或者移动到其它目录 - 以防出错)。
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |