精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● PHP>>安装配置>>PHP安装手册 - Windows

主题:PHP安装手册 - Windows
发信人: 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就可以了。 

  • [关闭][返回]