当前位置: 首页 > 图文教程 > 服务器 > Windows服务器 > IIS 7.x FastCGI 运行 PHP的配置方法

Windows服务器
IIS5的HTTP 500内部服务器错误的解决
IIS 服务器的错误排查方法
IIS、SQL Server和ASP.NET安全设置解决方案
IIS6设置网站经常遇到的问题详解
IIS环境下不能运行ASP程序怎么办?
IIS下出现401错误提示该怎么解决?
用好Windows Server 2008系统自带的防火墙
Windows服务器下查IIS被挂iframe木马
Windows 2003服务器不能播放Flv文件
Windows Server 2008的防火墙配置
Web服务器启用并运行FTP服务
授予对Web内容的Web服务器权限
微软欲推低成本Windows Server操作系统
Nehalem到数据中心 英特尔全面支持云计算
华硕P5BV-C-2L视频点播首选 稳定高负载
Windows服务器 八个需要注意的安全维护问题
教你如何清除windows2000日志
Windows2003服务器安装设置教程:MSSQL安全篇
Windows2008如何开启AHCI功能?
Windows服务器上配置SNMP服务的方法

Windows服务器 中的 IIS 7.x FastCGI 运行 PHP的配置方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 112 ::
收藏到网摘: n/a

实际上从微软提供 FastCGI 支持以来,在 IIS官方站点上就一直有关于如何配置 IIS 各个版本下的 FastCGI 支持以及使用 FastCGI 方式运行 PHP 的详细教程 所以早在 IIS 7.0 刚刚出现没多久,微软就已经提供了在 IIS 上运行 PHP 的一种更优化的方式—— FastCGI。但是直到 IIS 7.5 随着 Windows 7 出现,网上还有很多的“大虾”在教菜鸟们如何在 IIS 7.x 下用配置ISAPI支持的方式(甚至是PHP手册上不推荐的拷贝文件到系统目录的方式)来支持 PHP。本文介绍一下在 IIS7.x 中启用 FastCGI,以及配置 PHP 的方法。

我的配置环境是 Windows 7 x64 + IIS 7.5,但是本文的内容在Windows 7.x 版本中应该是完全通用的,因为 FastCGI 正是从 IIS 7.0 开始成为内置组件的。至于之前的版本,需要额外安装 FastCGI 支持,配置上也略有不同。

Part I. 启用 IIS 7.x 中的 FastCGI 支持

依次打开 控制面板 | 程序和组件 | 开启或关闭Windows功能,英文版对应操作为 Control Panel | Programs and Features | Turn Windows Features On or Off. 然后按下图所示启用 FastCGI (勾选 CGI 将同时启用 CGI 和 FastCGI 支持)。其它项你应该根据自己的需要选择,我这里是为了突出显示才去掉了其他项目的勾选。

图一

如果是 IIS7.0,微软已经发布了一系列升级补丁来修正其中内置的 FastCGI 模块已知的部分问题,你可以根据自己的系统下载对应的补丁进行升级:

  • Update for Windows Server 2008
  • Update for Windows Server 2008 x64 Edition
  • Update for Windows Server 2008 for Itanium-based Systems
  • Update for Windows Vista SP1
  • Update for Windows Vista SP1 for x64 based Systems

    Part II. 安装和配置PHP

    微软官方文章里建议使用非安全线程版本的PHP(non-thread safe build of php),但是由于该版本下的Zend Optimizer的启用会比较复杂,而大部分商业PHP程序都是离不开Zend Optimizer的,所以建议仍然采用安全线程版本的PHP。请从 PHP官方网站 下载最新版本的 PHP Zip格式压缩包,本文写作时使用的是 PHP 5.2.9-2 版,下载地址:PHP 5.2.9-2 zip package

    下载以后,将其解压缩到任意目录(本文中使用 D:\server\php,后面所有涉及到此路径的地方均表示为 [PHP Install Dir]),然后将目录中的 php.ini-recommend 改名为 php.ini 。用任意的文本编辑器打开这个文件,查找并确认以下设置:

    • fastcgi.impersonate = 1
    • cgi.fix_pathinfo=1
    • cgi.force_redirect = 0
    • open_basedir 指向包含 php 程序的网站路径。 【可选项】
    • extension_dir = "./ext" ;注意:以往版本中这里往往要使用绝对路径,但是现在可以用这样的方式进行通用配置。
    • 删除你需要激活的php扩展加载项前面的分号,例如:
      extension=php_mssql.dll
      extension=php_mysql.dll
      注意:不是所有的项目都可以激活的,最好只激活你用到的,如果激活某一项之后运行不了,请重新注释掉该项并重启IIS。

    设置完毕以后,可以启动一个命令提示行窗口(cmd.exe),运行 [PHP Install Dir]/php –info 检查一下 php 是否可以正确运行,如果正确,会输出一系列的环境变量提示等。

    Part III. 配置 IIS 处理 PHP 请求

    打开 IIS 管理器,左边选择你的计算机,中间窗口点击“Handler Mapping”(中文版的朋友对照一下图标了,我不太确定在中文版操作系统中这个项目会翻译成什么),然后在右边点击“Add Module Mapping…”(添加模块映射)。

    在弹出的 Add Module Mapping 对话框中,按照下图填写(Executable(optional)一项请填写你自己的安装路径,即 [PHP Install Dir]/php-cgi.exe ):

    Add Module Mapping

    填写好之后,点 OK,会弹出一个确认对话框,问你是不是真的要添加这个模块映射。点 Yes 继续。

    file3

    到此就完成了 PHP 在 IIS 7.x 下的安装,在你的网站目录下创建一个文本文件,文件名后缀为.php,比如test.php,该文件的内容只有一行:

    <?php phpinfo(); ?>

    然后用浏览器浏览这个文件(通常是http://localhost/test.php),正常情况下,就会看到PHP的默认信息页面了。

    phpinfo

    根据不同的配置,看到的信息可能有所不同,我这里的抓图已经安装了 Zend Optimizer v3.3.3,默认当然是没有的,你可以自己下载并安装,Zend Optimizer 的安装和以前所有版本的一样,就算没有教程,跟着安装向导一步一步选择也能成功安装。我这里就不赘述了。此外还有 MySQL、PhpMyAdmin 等的安装,也都是一样的。虽然相关,但都和 IIS 版本无关。就不讲了。

    以前配置过PHP4,或者在 IIS 6.0 以前版本中以 ISAPI 方式配置过的朋友应该能发现,使用 FastCGI 方式在 IIS 7.x 中配置 PHP,已经大大简化,不用像 PHP 4那样向系统文件夹拷贝文件,不用像 IIS 6.0 以前版本那样修改环境变量,而且也不像 ISAPI 方式那样要设置 extension_dir 的绝对路径……

    总而言之,PHP 在 Windows 下已经不像以前一样仅仅是不得以而为之的一个东西,它的安全性、稳定性、运行效率已经大大提高。除了 Linux + Apache + PHP + MySQL,我们现在也可以很方便地使用 Windows + IIS + PHP + MSSQL 了。