PHP中文手册

版权信息

PHP 手册

入门指引

安装与配置

语言参考

安全

特点

函数参考

PHP 核心:骇客指南

FAQ

附录

手工安装步骤

本章包含有在 Microsoft Windows 中手工安装和配置 PHP 的指示。有关如何使用 PHP 安装程序在 Windows 下安装和配置 PHP 以及 web 服务器,请参阅 Windows 安装程序(PHP 5.2 及更新版本)一章。

选择和下载 PHP 发行包

» PHP for Windows: Binaries and Sources 页面下载 PHP 的 zip 二进制发行包。有几个不同版本,根据所用 web 服务器选择合适的版本:

  • 如果是用于 IIS 则选择 PHP 5.3 VC9 Non Thread Safe 或者 VC6 Non Thread Safe

  • 如果是用 IIS7 或更高版本以及 PHP 5.3+,则应选择 VC9 的包;

  • 如果是用于 Apache 1 或 Apache 2 则选择 PHP 5.3 VC6 或者 PHP 5.2 VC6

Note:

VC9 版本是用 Visual Studio 2008 编译的并且在性能和稳定性上都有所提高。VC9 版本需要用户系统中安装有 » Microsoft 2008 C++ Runtime (x86) 或者 » Microsoft 2008 C++ Runtime (x64)

PHP 压缩包的结构和内容

将 zip 包解压缩到自己选择的目录,例如 C:\PHP\。此目录和文件结构类似于:

Example #1 PHP 5 压缩包的结构

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- php5.lib 的非线程安全版本
   |
   +--ext                          -- PHP 扩展库的 DLL 文件目录
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- 空 
   |
   +--pear                         -- PEAR 的初始版本
   |
   |
   |-go-pear.bat                   -- PEAR 安装脚本
   |
   |-...
   |
   |-php-cgi.exe                   -- CGI 可执行文件
   |
   |-php-win.exe                   -- 无窗口执行脚本的可执行文件
   |
   |-php.exe                       -- PHP 命令行可执行文件(CLI)
   |
   |-...
   |
   |-php.ini-development           -- 默认的 php.ini 设置
   |
   |-php.ini-production            -- 推荐的 php.ini 设置
   |
   |-php5apache2_2.dll             -- 非线程安全版本中无此文件
   |
   |-php5apache2_2_filter.dll      -- 非线程安全版本中无此文件
   |
   |-...
   |
   |-php5ts.dll                    -- PHP 核心 DLL(php5.dll 的非线程安全版本)
   | 
   |-...

以下是 PHP zip 包中包含的模块和可执行文件列表:

  • go-pear.bat - PEAR 安装脚本。更多内容参见» 安装 PEAR

  • php-cgi.exe - CGI 可执行文件,可用于 IIS 上以 CGI 或者 FastCGI 方式运行 PHP。

  • php-win.exe - PHP 可执行文件,可运行 PHP 脚本而不打开命令行窗口(例如使用 Windows 图形界面的 PHP 程序)。

  • php.exe - PHP 可执行文件,用于命令行界面运行 PHP 脚本(CLI)。

  • php5apache2_2.dll - Apache 2.2.X 模块。

  • php5apache2_2_filter.dll - Apache 2.2.X 过滤器。

修改 php.ini 文件

解压缩 PHP 的包之后,将 php.ini-production 拷贝为 同一目录下的 php.ini。如有必要,也可以将 php.ini 放到其它地方,但是需要更多配置步骤,具体见配置文件

php.ini 文件决定 PHP 如何配置自身以及如何在其工作环境下运行。以下 php.ini 文件中的配置指令有助于使 PHP 更好地运行于 Windows 之中。有一些是可选项。还有很多其它指令也可能与用户环境有关,更多信息见 php.ini 配置选项列表

必须的指令:

  • extension_dir = <指向扩展库目录的路径> - extension_dir 需要指向存放 PHP 扩展库文件的目录。可以是绝对路径(如 "C:\PHP\ext")或相对路径(如 ".\ext")。在 php.ini 文件中要加载的扩展库都必须在 extension_dir 所指定的目录之中。

  • extension = xxxxx.dll - 对每个需要激活的扩展,都需要一行相应的 "extension=" 语句来说明 PHP 启动时加载 extension_dir 目录下的哪些扩展。

  • log_errors = On - PHP 有错误日志的功能可以将错误报告发送到一个文件中,或者系统服务中(例如系统日志),与下面的 error_log 指令配合工作。在 IIS 下运行时, log_errors 应被激活,并且配合有效的 error_log

  • error_log = <指向错误日志文件的路径> - error_log 需要指向一个具有绝对或相对路径的文件名用于记录 PHP 的错误日志。Web 服务器需要对此文件有可写权限。最常用的位置是各种临时目录,例如 "C:\inetpub\temp\php-errors.log"。

  • cgi.force_redirect = 0 - 在 IIS 下运行时需要关闭此项指令。这是个在许多其它 web 服务器中都需要激活的目录安全功能,但是在 IIS 下如果激活则会导致 PHP 引擎在 Windows 中出错。

  • cgi.fix_pathinfo = 1 - 此指令可以允许 PHP 遵从 CGI 规则访问真实路径信息。IIS 的 FastCGI 实现需要激活此指令。

  • fastcgi.impersonate = 1 - IIS 下的 FastCGI 支持模拟呼叫用户方安全令牌的能力。这使得 IIS 可以定义请求方的安全上下文。

  • fastcgi.logging = 0 - FastCGI 日志在 IIS 下应被关闭。如果激活,则任何类的任何消息都被 FastCGI 视为错误条件从而导致 IIS 产生 HTTP 500 错误。

可选指令:

  • max_execution_time = ## - 此指令设定任何脚本所能够运行的最长时间。默认值是 30 秒。如果 PHP 程序需要更多时间运行则增大此值。

  • memory_limit = ###M - PHP 进程能够占用的内存,单位为兆字节。默认值是 128M,对大多数程序都够用了。某些复杂程序可能需要更多。

  • display_errors = Off - 此指令设定 PHP 是否将任何错误信息包含在返回给 web 服务器的数据流中。如果设定为 "On",则 PHP 将任何由 error_reporting 指令所定义的错误信息作为错误数据流发给 web 服务器。为安全起见,建议对在线服务器设为 "Off" 以避免泄露任何可能包含在错误消息中的安全敏感信息。

  • open_basedir = <指向目录的路径,由分号分隔> - 例如 openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp"。此指令指定了允许 PHP 进行文件系统操作的目录。任何对这些目录之外的文件操作都会导致错误。此指令在共享主机环境中特别有用,可以阻止 PHP 脚本访问任何其网站根目录之外的文件。

  • upload_max_filesize = ###M post_max_size = ###M - 分别是上传文件的最大大小和 POST 方法提交数据的最大大小。如果 PHP 程序需要上传大型数据例如照片和视频文件,则应提高这两项的值。

至此已在系统中安装了 PHP。下一步是选择一种 web 服务器并且使其能够运行 PHP。在目录中选择 web 服务器。

除了可在 web 服务器中运行 PHP 之外,PHP 还可以在命令行运行,如同 .BAT 批处理脚本一样。详见 Windows 下的 PHP 命令行方式