在Windows IIS 6.0下配置PHP,通常有CGI、ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异。

  1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。

  2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。

  在Windows Server 2003的IIS6下配置ISAPI方式的PHP,配置方法是,在IIS的“WEB服务扩展”中,添加一个新的WEB服务扩展,程序后缀为PHP,ISAPI程序为php5isapi.dll,然后再“环境变量”-“系统变量”中增加变量名PHPRC,数值为php.ini的路径,在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择“属性”),再选择“主目录”。点击“配置”按钮,选择“映射”Tab页。点击“添加...”,在“可执行文件”设为: c:\php\php5isapi.dll,扩展名设为.php,选择“确认文件是否存在”,然后“确定”保存设置。重启服务器即可完成PHP的配置。

  3、FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。

  FastCGI已经集成于IIS7,也支持IIS6。

在IIS6中的安装方法可参见微软的官方文档,这里简单翻译一下:

  先点这里下载一个32位的FastCGI extension for IIS,然后将其安装,安装后的文件应该放到system32\inetsrv目录下。

  之后打开system32\inetsrv目录,执行下面的语句,其中c:\php为你的PHP目录,可以修改为其他数值。

  cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"c:\php\php-cgi.exe"

  在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择“属性”),再选择“主目录”。点击“配置”按钮,选择“映射”Tab页。点击“添加...”,在“可执行文件”设为: c:\windows\system32\inetsrv\fcgiext.dll,扩展名设为.php,选择“确认文件是否存在”,然后“确定”保存设置。

  修改php.ini文件,增加如下语句:

  fastcgi.impersonate = 1
  cgi.fix_pathinfo = 1
  cgi.force_redirect = 0

  之后打开system32\inetsrv目录,执行以下语句:

  cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
  cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

  最后,配置c:\php目录的安全性,使得IIS_WPG组对于这个目录有读取和执行的权限。

  这时候,基于FastCGI的PHP就成功配置到IIS6上了。

  根据测试,FastCGI的性能比ISAPI的好像高不了多少,不知道Windows Server 2008下的IIS7是不是会好一些。这里是微软提供的基于内置FastCGI的IIS7安装PHP的方法。

转载于:https://www.cnblogs.com/fdszlzl/archive/2009/07/01/1514806.html

IIS下PHP的ISAPI和FastCGI比较相关推荐

  1. IIS6下PHP的ISAPI和FastCGI性能比较 期待ii7

    在Windows IIS 6.0下配置PHP,通常有CGI.ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异. 1. ...

  2. isapi mysql_Windows 2008R2以ISAPI和Fastcgi方式安装配置IIS、PHP、Mysql环境

    Windows下PHP有两个版本,非线程安全及线程安全版本,运行方式可选ISAPI.Fastcgi.CGI.1.Non Thread Safe版本php适用于以CGI以和fastCGI运行的web服务 ...

  3. php5(isapi).mysql5.zendforiis.rar_WIN2003系统IIS下PHP5+MySQL5+ZendOptimizer配置图解教程第1/3页...

    一.下载好php5.mysql5及ZendOptimizer和phpmyadmin的安装程序 PHP下载地址http://www.php.net/downloads.php MySQL 4下载地址ht ...

  4. iis php5.3套件,IIS下安装php5.3

    前面装过一次PHP5.2,但PHP5.3与PHP5.2相比,变化很多. 由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的Fa ...

  5. php5.3 iis安装,IIS下安装php5.3

    前面装过一次PHP5.2,但PHP5.3与PHP5.2相比,变化很多. 由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的Fa ...

  6. iis下 ActiveSync插件无法访问(下)

    接上篇<iis下 ActiveSync插件无法访问(上) >,这次上中文的图~\(^o^)/~ 二.ActiveSync在iis6下的发     1.在新建的WorldClient下新建一 ...

  7. 【转载】各版本IIS下ASP.net请求处理过程(3)

    IIS  7 应用程序池的 托管管道模式  集成模式 而 IIS 7 完全整合 .NET 之后,架构的处理顺序有了很大的不同(如下图),最主要的原因就是 ASP.NET 从 IIS 插件(ISAPI ...

  8. IIS下配置PHP遇到Service Unavailable的解决方法

    最近使用了一个ASP版的CMS,准备放到服务器上时,才发现服务器上面用的Apache2.09,默认不支持Asp. 网上流传的解决办法就是通过IASP这个程序,来扩展Apache对Asp的支持,但同时又 ...

  9. windows server 2003 IIS下配置PHP

    在IIS下配置PHP,一共4大步骤. 步骤/方法 首先下载Windows的PHP安装包.随后将该包解压至C:\PHP.完成上面的步骤后,将C:\php目录下的php.ini-dist文件改名为php. ...

最新文章

  1. 【深度学习理论】(3) 激活函数
  2. 在vim中设置将tab自动转化为4个空格
  3. 点开计算机桌面选项怎么不见了,电脑桌面上的图标都不见了该怎么办?
  4. AngularJS快速入门指南14:数据验证
  5. 初级线段树讲解---转
  6. 微信推送封面尺寸_连封面图都搞不明白,做什么新时代的新媒体人?
  7. ADD_SHORTCUT_ACTION
  8. c语言实验题数组逆序,【C语言】利用栈将数组中字符串逆序
  9. Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例
  10. 《企业IT架构转型之道》边读边想——平台稳定性能力
  11. pe安装linux 12.04,乌班图系统Ubuntu 12.04安装教程(图文详解)
  12. osgEarth使用经纬度定义视点/设置相机跟随移动的节点
  13. Apache Airflow调度中心发布任务步骤
  14. 《赋得古原草送别》诗改文
  15. 百度想成为伟大的金融科技公司?太迟了
  16. 【DKN】(五)attention.py
  17. 社会工程学之黑客七宗罪——傲慢(Hooking)
  18. 前端如何实现整套视频直播技术流程(以打扑克直播软件为例)
  19. CCBN 官方APP STORE隐私政策
  20. oracle8i substr,Oracle中INSTR和SUBSTR的用法

热门文章

  1. redis debug命令详解
  2. as3 htmlText 的bug
  3. 国外自由车流ETC电子收费系统集成技术发展状况
  4. Linux分区空间不足了怎么办??
  5. centos mysql 主从配置_centos7.4安装mysql8,并设置主从配置
  6. 开源硬件 专利_标准和开源:为什么专利待遇不同?
  7. 人力资源大数据公司_大数据与人力资源相结合,平衡透明度和隐私
  8. 测试beta测试_重新想象不断变化的自动化世界中的Beta测试
  9. beyond唱片_如何数字化您的唱片
  10. (9)css常用样式--盒子模型