Internet Information Services (IIS) 7.0 增加了对 FastCGI 协议的支持,该协议可提高 IIS Web 服务器上承载的常用应用程序框架(如 PHP)的性能和可靠性。 FastCGI 可提供高性能的通用网关接口 (CGI) 协议的替代方案,这是一种使外部应用程序能与 Web 服务器接合的标准方式。

适用于 Windows Server® 2008 和 Windows Vista® Service Pack 1 (SP1) 的 IIS 7 目前包括一个内置的 FastCGI 组件。 本主题说明如何使用 FastCGI 模块将 PHP 应用程序托管在 Windows Server 2008 和 带 SP1 的 Windows Vista 的 IIS 7 上。

重要提示:本主题提供了关于如何在 Windows Server 2008 和 带 SP1 的 Windows Vista 上安装和使用 FastCGI 组件的说明。 对于 Windows Vista(非 SP1),没有官方支持的 FastCGI 组件。 如果必须在 Windows Vista 操作系统上使用 FastCGI 组件,则强烈建议升级到 带 SP1 的 Windows Vista。

在 Windows Server 2008 上启用 IIS 7.0 中的 FastCGI 支持

在 Windows Server 2008 上启用 IIS 7.0 中的 FastCGI 支持

打开“服务器管理器”。

在右窗格中的“角色摘要”下,单击“添加角色”。

使用“添加角色向导”选择“CGI”角色服务。 这样便可同时启用 CGI 和 FastCGI 服务。

在 Windows Vista SP1 上启用 IIS 7.0 中的 FastCGI 支持

在 Windows Vista SP1 上启用 IIS 7.0 中的 FastCGI 支持

转至 Windows 的“开始”菜单,打开“控制面板”。

双击“程序和功能”。

单击“打开或关闭 Windows 功能”。

在 Windows 的“功能”对话框中,展开“Internet 信息服务”、“万维网服务”和“应用程序开发功能”,然后选择“CGI”。 单击“确定”。

安装和配置 PHP

建议对 IIS 7 FastCGI 使用 PHP 的非线程安全内部版本。 与标准的内部版本相比,PHP 的非线程安全内部版本不执行任何线程安全检查,因而可显著提高性能。 之所以不必执行这些检查是因为 FastCGI 可确保单线程的执行环境。

安装 PHP

转至 PHP 网站,然后下载最新的 PHP 非线程安全二进制文件。

将文件解压到您选择的目录,如 C:\PHP。 重命名 Php.ini,建议命名为 Php.ini

打开 Php.ini 文件,然后取消注释并如下所示修改设置:

设置 fastcgi.impersonate = 1。 IIS 中的 FastCGI 支持模拟呼叫客户端的安全令牌的功能。 这样便可允许 IIS 定义在其下运行请求的安全上下文。

设置 cgi.fix_pathinfo=1。Cgi.fix_pathinfo 可对 CGI 提供实际的 PATH_INFO/PATH_TRANSLATED 支持。 以前的 PHP 行为是将 PATH_TRANSLATED 设置为 SCRIPT_FILENAME,并且在 PATH_INFO 中忽略该设置。 有关 PATH_INFO 的详细信息,请参阅 CGI 说明。 将 PATH_INFO 的值设置为 1 将促使 PHP CGI 将其路径与说明匹配。

设置 cgi.force_redirect = 0。

将 open_basedir 设置为指向网站内容所在的文件夹或网络路径。

要测试 PHP 是否安装成功,请在命令提示符处键入以下内容:

C:\PHP>php –info

如果 PHP 安装正确且计算机上提供了其所有的依赖项,则此命令将会输出当前的 PHP 配置信息。

将 IIS 7.0 配置为使用 UI 处理 PHP 请求

对于要托管 PHP 应用程序的 IIS 7,您必须添加处理程序映射,该映射会命令 IIS 使用 FastCGI 协议将 PHP 文件的所有请求都传给 PHP 应用程序框架。

使用 UI 添加服务器级别的处理程序映射

打开“IIS 管理器”,然后移至服务器级别。

双击处理程序映射。

在“操作”窗格中,单击“添加模块映射”。

在“添加模块映射”对话框中,指定配置设置,如下所示:

请求路径:*.php

模块:FastCgiModule

可执行文件:C:\[PHP 的安装路径]\php-cgi.exe

名称:PHPviaFastCGI

单击“确定”。

在请您确认是否要为可执行文件创建 FastCGI 应用程序的对话框中,单击“是”。

要验证处理程序映射是否正常工作,请在 C:\inetpub\wwwroot 文件夹下创建一个 Phpinfo.php 文件,其中包含:

打开 Web 浏览器,然后导航至 http://localhost/phpinfo.php。如果一切内容都经过正确设置,则您会看到标准的 PHP 信息页面。

将 IIS 7.0 配置为使用命令行处理 PHP 请求

还可以使用 Appcmd.exe 添加处理程序映射。

使用命令行添加服务器级别的处理程序映射

要创建 FastCGI 应用程序进程池,请运行以下命令:

C:\>%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCgi /+[fullPath=’c:\{php_folder}\php-cgi.exe’]

要创建处理程序映射,请运行以下命令:

C:\>%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name=’PHP_via_FastCGI’,path=’*.php’,verb=’*’,modules=’FastCgiModule’,scriptProcessor=’c:\{php_folder}\php-cgi.exe’,resourceType=’Either’]

注意:如果使用的是 PHP 的 4.x 版本,则可以使用 Php.exe 来代替 Php-cgi.exe。

配置 PHP 和 FastCGI 的回收行为

确保 FastCGI 总是在本机 PHP 回收开始之前回收 Php-cgi.exe 进程。 配置属性 instanceMaxRequests 控制着 FastCGI 进程回收行为。 此属性可指定回收之前 FastCGI 将要处理的请求数量。 PHP 也具有类似的进程回收功能,该功能由环境变量 PHP_FCGI_MAX_REQUESTS 控制。 通过将 instanceMaxRequests 设置为一个小于或等于 PHP_FCGI_MAX_REQUESTS 的值,便可确保本机 PHP 进程回收逻辑永远都不会开始。

要设置这些配置属性,请使用以下命令:

C:\>%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath=’c:\{php_folder}\php-cgi.exe’].instanceMaxRequests:10000

C:\>%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /+[fullPath=’c:\{php_folder}\php-cgi.exe’].environmentVariables.[name=’PHP_FCGI_MAX_REQUESTS’, value=’10000′]

注意:如果这些参数未经过设置,则(大部分 PHP 内部版本)会使用以下默认设置:instanceMaxRequests = 200、PHP_FCGI_MAX_REQUESTS = 500。

php fastcgi配置_[转帖]将 FastCGI 配置为主机 PHP 应用程序 (IIS 7) | 霸王硬上弓's Blog...相关推荐

  1. 华为多臂路由_[分享]华为 AR路由 策略路由 多WAN环境下指定出口 | 霸王硬上弓's Blog...

    需要符合如下要求: 1.不同IP段走不同接口,指定IP的流量可以通过指定WAN,或者多WAN下自动选路/负载均衡(自动选路/负载均衡已配置好,略). 2.指定接口后实现内网的隔离/互联互通 操作环境: ...

  2. windows服务器双网卡链路聚合_[分享]Windows 8 及以上版本 开启多网卡链路聚合 | 霸王硬上弓's Blog...

    这个内容 网上已经有类似教程.这是个大杂烩.但是在Windows Bug 10中,几乎无法成功创建. Windows 8/10 桌面版创建过程如下: 使用管理员权限运行PowerShell 命令:Ge ...

  3. winbox 端口扫描_[分享]RouterOS 禁止端口扫描 | 霸王硬上弓's Blog

    ROS上很简单的几条设置.记录和分享一下. 设置方法: IP > Firewall > Filter Rules 1.新增检测 默认为TCP端口扫描检测,可以增加UDP端口扫描检测.这里协 ...

  4. hdfs 备份数配置_大数据||HDFS HA配置详解

    根据HA架构图,规划HA的分布式集群服务器 HA集群规划 配置参考图 根据官方文档配置HA 部分说明 Architecture 在典型的ha集群中,两台独立的机器被配置为namenode.在任何时间点 ...

  5. 华为交换机导入配置_将一个华为交换机的配置导入另一个已有配置的交换机中...

    1.金锄头文库是"C2C"交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时 ...

  6. java tomcat 环境变量配置_手把手教你如何配置tomcat环境变量

    我们下载安装了tomcat,那么tomcat环境变量配置怎么配置?下面小编就和大家分享下tomcat环境变量的配置.首先介绍安装JDK和Tomcat 一.安装JDK和Tomcat 1.安装JDK:直接 ...

  7. jenkins中jdk配置_如何在Jenkins中配置JDK

    jenkins中jdk配置 In the previous chapter, we learnt how to configure the Jenkins and start the server a ...

  8. 主机配置_分享几套电脑主机配置

    配件 型号 CPU IntelI7 10700K 散热 九州风神 堡垒240水冷 主板 微星Z490 GAMING PLUS 内存 海盗船复仇者DDR4 3200HZ  8G*2 16G 硬盘 三星P ...

  9. java+spring+mysql配置_用spring的beans配置mysql数据库

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www. ...

最新文章

  1. php m 报错,PHP框架ThinkPHP入参m报错
  2. 监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd)
  3. oracle自带split函数_Pandas 基本使用(三) — DataFrame.to_dict() 函数基本使用
  4. JS写纸牌发牌和动画(详细解剖)
  5. 鼎利软件测试终端刷机,世纪鼎利pioneer连接移动平台进行volte测试操作说明.doc...
  6. flash 反编译资料
  7. 学习OpenCV在SFM系统的使用
  8. 飞信2009_那个时代独有的目光局限——浅谈“飞信”的兴衰
  9. Kafka性能监控与优化
  10. poi实现Excel文件写入 支持后缀XLSX格式
  11. 【Pygame基本使用】
  12. 匈牙利算法原理与Python实现
  13. 华为音乐APP提示网络忙无法连接
  14. 基于关联规则的推荐算法
  15. 于丹 论语 心得和感悟
  16. 企业邮箱哪家好,什么企业邮箱安全稳定好用?
  17. 【Codec系列】连续消除算法-SEA(Successive Elimination Algorithm)
  18. Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
  19. mysql schema 保存数据_在MySQL中,所有触发器的定义都保存在information_schema数据库下的()表中。_学小易找答案...
  20. 关于win7一些注册表操作

热门文章

  1. 基于MATLAB的数字PID直流电机调速系统
  2. linux 自带的make 命令,Linux如何使用make命令
  3. 编译原理实验:自下而上的语法分析---(算符优先分析)
  4. 【论文阅读】一种用于消歧和语义表示的统一模型 A Unified Model for Word Sence Representation and Disambiguation
  5. android profile memory usage(2)
  6. 【最短路】埃雷萨拉斯寻宝(eldrethalas) 解题报告
  7. 格力首次被美的空调击败之后,小米空调再来补刀!
  8. 惨遭补刀!美链BEC爆合约漏洞后,美图公司宣布终止合作
  9. 深入分析JavaWeb Item48 -- Struts2中OGNL表达式与ValueStack
  10. 学生成绩管理程序(C语言版)