发信人: dalasthunder(Dallas)
整理人: dalasthunder(2002-07-30 15:52:21), 站内信件
|
(本文根据2002-7-24的PHP在线手册Windows安装翻译而来,原文见:
http://www.php.net/manual/en/install.windows.php
其中部分用户添加帖值得参考,但不一定完全正确,需要验证)
Windows系统下的安装
本节内容适用于Windows 95/98/Me 以及Windows NT/2000/XP。PHP不能在16位
平台例如Windows 3.1下运行。有时我们把支持PHP的Windows平台称为Win32。
有两种方法安装PHP for Windows:手工安装或者使用InstallShield installer。
如果你有Microsoft Visual Studio,也可以编译PHP的源程序。
一旦在Windows系统下安装好PHP之后,你可能需要加载各种extension以实现更多的功能。
Windows InstallShield
Windows版的PHP安装程序可以从下载页获得,此程序将安装PHP的CGI版本,
并且自动配置好IIS,PWS和Xitami三种Web Server。注意,InstallShield
Installer是一种简单易用的安装方法,在很多方面都受到限制,例如不支持
自动配置extensions。
安装好你选用的HTTP Server并且确定工作正常。
运行可执行的安装程序并按照安装向导的提示进行安装。安装程序支持两种
安装方法 - 标准,尽量提供最佳默认参数,高级,在安装过程中提问。
安装向导收集足够的信息来配置php.ini文件并且配置Web Server使用PHP。
在NT Workstation下的IIS和PWS中,会列出服务器上所有节点的脚本映射,
你可以在这些节点中选择哪些加入PHP的脚本映射。
一旦安装结束,安装程序会提示是否需要重新启动系统。重启动服务器或者
开始使用PHP。
警告
注意,这样安装的PHP并不安全。如果你想要更安全的安装PHP,最好手工进行,
并且小心地配置每个选项。自动进行的安装程序只是提供一个可以马上使用的PHP,
并不意味着可以用在在线的服务器上。
手工安装步骤
本安装指南帮你手工安装和配置PHP到你的Windows Webserver。你需要从PHP
站点下载一个可执行发行版本的zip包。本指南的原始版本由Bob Silva编辑,位于:
http://www.umesd.k12.or.us/php/win32install.html
本指南提供以下的手工安装支持:
Personal Web Server 3,4或更新版本
Internet Information Server 3,4或更新版本
Apache 1.3.x
OmniHTTPd 2.0b1及以上版本
Oreilly Website Pro
Xitami
Netscape Enterprise Server, iPlanet
PHP 4 for Windows有两种方式 - CGI版的可执行文件(php.exe),以及
一些SAPI模块(例如:php4isapi.dll)。后一种是PHP 4新提供的方式,
提供了显著的性能增长以及一些新功能。
警告
SAPI模块在4.1版中有了显著的增强,但是,在一些老系统中,你也许会
遇到可能的服务器错误或者其他的模块例如ASP失败。
如果你先则了其中一个SAPI模块并且是在Windows 95下使用,要确认从
微软的DCOM页面下载安装了DCOM更新。对于ISAPI模块,
需要ISAPI 4.0兼容的Web Server(在IIS 4.0, PWS 4.0以及IIS 5.0下测试过)。
不支持IIS 3.0。如果需要本地PHP支持,你需要下载和安装Windows NT
4.0 Option Pack With IIS 4.0。
不论何种Web Server,都需要先进行以下步骤:
将PHP压缩包释放到你选择的目录中。例如:C:\PHP\ 。你可能不想用
中间有空格的路径(例如:C:\Program Files\PHP 就不太好),如果这样
做有些Web Server会崩溃。
你需要确认PHP使用的DLL文件能被找到。具体涉及到哪些DLL文件是根据
你用哪种Web Server和你是用CGI方式还是服务器模块方式使用PHP来决定的。
php4ts.dll是一定要用的。如果你用服务器模块(例如ISAPI或者Apache)那你
需要sapi目录下相关的DLL文件。如果你用了任何PHP extension DLL那你也
需要那些DLL文件。为了确认DLL文件能被找到,你可以要么把这些文件拷贝到
system目录下(例如 \winnt\system32 或者 \windows\system)要么确认这些
文件和PHP的主要执行文件或者Web Server使用的DLL文件在同一个目录下
(例如 php.exe, php4apache.dll)。
PHP可执行文件,SAPI模块和一些extension要依靠外部的DLL文件来执行。
需要确认这些DLL文件所在目录在Windows的路径中。最好把以下文件拷贝到
你的system目录中,system目录通常为:
c:\windows\system for Windows 9x/ME
c:\winnt\system32 for Windows NT/2000
c:\windows\system32 for Windows XP
需要拷贝的文件是:
php4ts.dll, 如果已经存在,则覆盖之。
PHP发行包中 dlls 目录下的所有文件。如果这些文件已经安装在你的系统中,
仅在不能正确运行时才覆盖它们(在覆盖前,最好备份原来的文件,或者把
原来的文件移动到别的文件夹中 - 以防出错)。
下载最新版的Microsoft Data Access Components (MDAC),尤其是使用
Windows 9x/NT4时。MDAC位于:
http://www.microsoft.com/data/
拷贝你选中的ini文件(见下)到你的'%WINDOWS%'目录下如果使用Windows 9x/Me,
或者到'%SYSTEMROOT%' 目录下如果使用Windows NT/2000/XP并且改名为 php.ini。
典型的 '%WINDOWS%' 或者 '%SYSTEMROOT%' 目录为:
c:\windows for Windows 9x/ME/XP
c:\winnt or c:\winnt40 for NT/2000 servers
在PHP的zip包中提供了两个版本的ini文件,php.ini-dist 和 php.ini-optimized。
我们建议你使用 php.ini-optimized,因为我们优化了此文件中的默认设置以
达到更佳性能与安全。最好仔细研究所有的ini设置并且自己手工设置每一项参数。
如果你想达到最佳的安全性,那这正是为你准备的。当然了,PHP在默认的ini文件
下也一样运行得很好。
编辑你的新 php.ini 文件:
○ 你需要修改'extension_dir'设置以指向你安装PHP的目录,或者你放置那些
php_*.dll 文件的目录,例如:c:\php\extensions
○ 如果你使用 OmniHTTPd,不要进行这一步。设置'doc_root'指向你的Webserver
的document_root。例如:c:\apache\htdocs 或者 c:\webroot
○ 选择哪些extension你希望PHP启动时加载的。阅读Windows Extensions
部分学习如何加载,以及哪些已经加载了的。注意在新安装PHP时,建议先不要
加载任何extension,先确认PHP运行正常之后再在 php.ini 中加载它们。
○ 在PWS和IIS中,你可以设置 browscap.ini 指向:c:\windows\system\inetsrv\browscap.ini
on Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini on NT/2000,
以及 c:\windows\system32\inetsrv\browscap.ini on XP。
○ 注意Windows版中的 mibs 目录包括了SNMP的支持文件。该目录应该被移动到:
DRIVE:\usr\mibs (DRIVE是PHP的安装盘符)。
○ 如果你在Windows NT, 2000或者XP下使用了NTFS,确认运行Webserver的用户对于
php.ini 有读的权限(例如所有人可读)。
在PWS下给 webroot 执行的权限:
○ 启动PWS Web Manager
○ 编辑 "Home" 目录的属性
○ 选中 "execute" 选择框
编译源程序
开始之前,很值得回答一下这个问题:“为什么在Windows下编译这么难?”两个原因:
Windows下还没有愿意免费共享代码的开发人员群体。直接结果就是没有足够的
投资去建立支持这种开发方式的体系。大体上,尽量做到的可用资源都是从UNIX下的
工具来的。不要奇怪这种传统不时会出现。
下面几乎所有的说明都是“看过就忘”的类型。所以坐稳当并且尽可能忠实地按照
说明来做。
准备
在开始之前,需要下载很多东西...
对初学者,从最近的cygwin镜像站点下载Cygwin工具包。这将提供在
编译中用到的大多数流行的GNU工具。
从PHP站点下载其余需要的编译工具:http://www.php.net/extra/win32build.zip
下载PHP使用的DNS解析器的源代码:http://www.php.net/extra/bindlib_w32.zip。
用这个替代 win32build.zip中的 resolv.lib 。
如果你还没有unzip工具,可以从 InfoZip下载一个免费的。
最后,你还需要PHP 4的源代码。你可以通过匿名CVS得到最新的开发版本。如果你有了
snapshot或者源代码的tar.gz文件,你不仅需要 untar 和 unzip,还要在Microsoft
Visual C++处理之前把*.dsp和*.dsw文件中的换行符转换成回车换行。
注意:把 Zend 和 TSRM 目录放到 PHP 4 目录之中,以便在编译过程中
能够找到项目文件。
放到一起
遵循你选择的解压缩工具的用法
运行 setup.exe,按照安装说明进行。如果你选择的安装目录不是 c:\cygnus,
设置 Cygwin 环境变量让编译程序知道。在Windows 95/98下设置环境变量可以
通过在autoexec.bat中加入一行做到。在Windows NT中,打开My Computer =>
Control Panel => System并且选择 Enviroment 标签。
警告
建立一个临时目录给Cygwin使用,否则很多命令(尤其是bison)将出错。在Windows 95/98
下,mkdir C:\TMP。在Windows NT下,mkdir %SystemDrive%\tmp。
建一个目录把 win32build.zip 解压缩到里面。
运行Microsoft Visual C++,选择 Tools => Options 菜单,选择 Directories 标签,
依次在下拉框中选择Executable, Include和Library files,确认 cygwin\bin,
win32build\include 和 win32build\lib 在每个列表框中都包括。(要加入一项,选择
列表框最下面的空行并且输入路径)。典型的列表看上如同:
c:\cygnus\bin
c:\php-win32build\include
c:\php-win32build\lib
点击 OK,退出 Visual C++。
另外建一个目录并且把 bindlib_w32.zip 解压缩到里面。决定你是需要调试符号
(bindlib - Win32 Debug) 还是不需要 (bindlib - Win32 Release)。建立适当配置:
图形界面用户,运行VC,选择 File => Open Workspace 菜单并选择 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 在你的 Debug 或者 Release 目录下。拷贝
此文件到 win32build\lib 目录下并且覆盖同名的文件。
编译
初学者最好的方法是编译 standalone/CGI 版本。
图形界面用户,运行VC,选择 File => Open Workspace 菜单并选择 php4ts。接着
选择 Build => Set Active Configuration 菜单并选择需要的配置。最后选择 Build => Rebuild All。
命令行用户,确认你要么注册了C++环境变量,要么运行了 vcvars.bat,然后运行下面任意一个:
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
到这一步,你应该得到一个可用的 php.exe 在你的 Debug_TS 或者 Release_TS 目录下。
重复以上步骤处理 php4isapi.dsp (在 sapi\isapi 目录下)以获得代码使 PHP 能够和
Microsoft IIS集成。
安装Windows Extensions
在安装好PHP和Webserver之后,你可能想安装一些extension以增加功能。下表说明了
一些可用的extension。你可以去掉php.ini中'extension=php_*.dll'前面的注释来选择
哪些extension在PHP启动时被加载。你也可以在程序中用dl()函数动态加载。
PHP 4 extension的DLL文件开头都是 'php_'(PHP 3中是'php3_')。这避免了PHP Extension
和它们的支持库混淆。
注意:在PHP 4.0.6版中 BCMath, BCMath, Calendar, COM, FTP, MySQL, ODBC,
PCRE, Session, WDDX和XML支持都是内置的。不需要加载任何extension就可以使用这些
函数。你可以查看自己的版本中的README.txt或者install.txt哪些模块是内置的。
注意:一些extension需要其他DLL文件支持才能运行。有几个在发行包的
'dlls'目录下。但是有一些,例如Oracla(php_oci8.dll)所需要的DLL文件并没有
包括在发行包中。
把'dlls'目录下绑定的DLL文件拷贝到Windows路径中的目录中。安全的地方有:
c:\windows\system for Windows 9x/Me
c:\winnt\system32 for Windows NT/2000
c:\windows\system32 for Windows XP
如果这些文件已经安装在你的系统中,仅在不能正确运行时才覆盖它们(在覆盖前,
最好备份原来的文件,或者把原来的文件移动到别的文件夹中 - 以防出错)。
Table 3-1. PHP Extensions
Extension 说明 注释
php_bz2.dll bzip2 compression functions 无
php_calendar.dll Calendar conversion functions PHP4.0.3版后内置
php_cpdf.dll ClibPDF functions 无
php_crack.dll Crack functions 无
php3_crypt.dll Crypt functions 未知
php_ctype.dll ctype family functions 无
php_curl.dll CURL, Client URL library functions 需libeay32.dll,ssleay32.dll(包含)
php_cybercash.dll Cybercash payment functions 无
php_db.dll DBM functions 不赞成,用DBA替代(php_dba.dll)
php_dba.dll DBA: DataBase (dbm-style)抽象层函数 无
php_dbase.dll dBase functions 无
php3_dbm.dll Berkeley DB2 library 未知
php_domxml.dll DOM XML functions 需libxml2.dll(包含)
php_dotnet.dll .NET functions 无
php_exif.dll Read EXIF headers from JPEG 无
php_fbsql.dll FrontBase functions 无
php_fdf.dll FDF: Forms Data Format functions. 需fdftk.dll(包含)
php_filepro.dll filePro functions 只读
php_ftp.dll FTP functions PHP4.0.3版后内置
php_gd.dll GD library image functions 无
php_gettext.dll Gettext functions 需gnu_gettext.dll(包含)
php_hyperwave.dll HyperWave functions 无
php_iconv.dll ICONV characterset conversion 需iconv-1.3.dll(包含)
php_ifx.dll Informix functions 需Informix libraries
php_iisfunc.dll IIS management functions 无
php_imap.dll IMAP POP3 and NNTP functions PHP3:php3_imap4r1.dll
php_ingres.dll Ingres II functions 需Ingres II libraries
php_interbase.dll InterBase functions 需gds32.dll(包含)
php_ldap.dll LDAP functions 需libsasl.dll(包含)
php_mhash.dll Mhash Functions 无
php_ming.dll Ming functions for Flash 无
php_msql.dll mSQL functions 需msql.dll(包含)
php3_msql1.dll mSQL 1 client 未知
php3_msql2.dll mSQL 2 client 未知
php_mssql.dll MSSQL functions 需ntwdblib.dll(包含)
php3_mysql.dll MySQL functions PHP4内置
php3_nsmail.dll Netscape mail functions 未知
php3_oci73.dll Oracle functions 未知
php_oci8.dll Oracle 8 functions 需Oracle 8 client libraries
php_openssl.dll OpenSSL functions 需libeay32.dll(包含)
php_oracle.dll Oracle functions 需Oracle 7 client libraries
php_pdf.dll PDF functions 无
php_pgsql.dll PostgreSQL functions 无
php_printer.dll Printer functions 无
php_xslt.dll XSLT functions 需sablot.dll(包含)
php_snmp.dll SNMP get and walk functions NT only!
php_sybase_ct.dll Sybase functions 需Sybase client libraries
php_yaz.dll YAZ functions 无
php_zlib.dll ZLib compression functions 无
用户添加帖
Installation on Windows systems
[email protected]
28-Jan-2002 10:42
来自一个初次编译/安装者的几点 说明...
我根据Windows文档在Win2K Prof & VC++ 6下编译PHP 4.1.1:
除了要把cygwin的bin目录假如VC++的Executable Directories中以外,
我还把win32build.zip中的bin目录也加进去以找到bison。
而且我还建立了一个环境变量:
BISON_SIMPLE=c:\php-win32build\bin\bison.simple
让bison能够找到bison.simple文件...
当做完这两个附加步骤以后,我可以编译PHP了.... :)
[email protected]
14-Mar-2002 09:36
IIS 5: 如果你修改了PHP的映射(例如从CGI改成ISAPI),最好重新启动。
如果ISAPI应用程序被cache了,那么修改PHP映射会造成冲突。
leonid@NO__SPAM__tochinski.com
28-Mar-2002 04:08
长路径名
如果把PHP安装到有长文件名的目录(例如 C:\Program Files),php.ini
中的所有路径和目录都应该用双引号括起来,如同:
include_path = ".\;c:\program files\php\pear"
extension_dir = "c:\program files\php\extensions"
等等
[email protected]
06-Jun-2002 06:05
对应与Apache 2.0.36, Windows XP, 和 PHP 4.2.1.
按照对应Apache 1.3.x的安装文档进行安装,直到要修改httpd.conf这一步。
在你的httpd.conf文件中加入:
LoadModule php4_module c:/php/sapi/php4apache2.dll
<FilesMatch "\.php$">
SetOutputFilter PHP
</FilesMatch>
[email protected]
07-Jun-2002 06:40
在win2000 Advanced Server中,extensions目录要用斜杠,不能用反斜杠!
extension_dir = "C:/php/extensions"
[email protected]
10-Jun-2002 11:11
如果你的模块所在目录包含空格,用单引号括起来:
LoadModule php4_module 'c:/Program Files/php/sapi/php4apache2.dll'
<FilesMatch "\.php$">
SetOutputFilter PHP
</FilesMatch>
[email protected]
24-Jun-2002 02:04
对应于Apache 2.0.36和PHP 4.2.1,以下httpd.conf的配置
LoadModule php4_module c:/php/sapi/php4apache2.dll
运行正常。
** 但是不能在2.0.39下这么用!!!
否则在启动Apache时,会报告说版本不兼容。
[email protected]
24-Jun-2002 07:31
经过某些人的不懈努力,PHP4终于可以在Savant下用了。
Savant是一个Webserver for Windows 9x/2000/NT/XP。
连接如下:
http://savant.sourceforge.net
我还发现同样的c:\windows\php.ini文件可以用于Savant & Apache 1.3.x
05-Jul-2002 01:39
PHP 4.2.1不能在Apache 2下使用。从
http://snaps.php.net/win32
下载最新的快照版本,先查看日志文件确认Apache 2模块测试通过。
[email protected]
05-Jul-2002 01:43
RE: PHP4.2.1 & Apache 2.0.39 Win:
该问题在CVS中已经解决了。下载最新的稳定快照版本:
http://snaps.php.net/win32/
然后:
- php.ini 拷贝到 windows 目录
- LoadModule php4_module "C:\php\sapi\php4apache2.dll"
- AddType application/x-httpd-php .php
这样就行了!
[email protected]
10-Jul-2002 09:31
下载The Apache server 2.0.39 http://www.apache.org/dist/httpd/binaries/win32/
下载最新的 PHP 稳定版本http://snaps.php.net/win32
(先检查日志文件 http://snaps.php.net/win32/snapshot-STABLE.log ,找到其中一行:
Building php4apache2 - OK
如果是OK的话则下载该版本。)
安装Apache server。
解压缩php4-win32-latestest.zip,并将该文件夹拷贝到 C:\PHP,
拷贝php.ini.recommended 文件到 c:\winnt (或 c:\windows) 并且改名为php.ini
用notepad编辑 php.ini:
1. 找到 'doc_root' 并改为
doc_root = "C:\Program Files\Apache Group\Apache2\htdocs" (假定Apache默认安装)
2. 找到 'extension_dir' 并改为
extension_dir = "C:\PHP\extensions"
把文件 php4ts.dll 从 C:\PHP 移动到 c:\winnt\system32 (或者c:\windows\system)
到文件夹 C:\PHP\sapi 中并且将 php4apache2.dll 改名为 php4apache2.so
(把文件后缀从dll改成so)
运行Start -> Programs -> Apache HTTP Server 2.0.39 -> Configure Apache Server
点击'Edit the Apache httpd.conf Configuration File'
编辑httpd.conf,在一堆LoadModule语句的最后加上:
LoadModule php4_module c:/php/sapi/php4apache2.so
在搜索 AddType,在AddType application/x-tar .tgz 之后加上:
AddType application/x-httpd-php .php
重新启动Apache就可以了。
|
|