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

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的方法。

isapi的最大缺点在于不稳定,程序故障容易引起整个web服务器崩溃。
国外的一个评测,在Windows IIS 6下,FastCGI性能并不如ISAPI,但在IIS 7下则性能优秀。

(0)

相关推荐

  • 使IIS支持PHP,ISAPI或CGI,FastCGI完全配置教程(最新php5.2.13配置方法)

    在Windows Server 2003的IIS6下配置ISAPI方式的PHP,配置方法是,在IIS的"WEB服务扩展"中,添加一个新的WEB服务扩展,程序后缀为PHP,ISAPI程序为php5isapi.dll,然后再我的电脑->属性->高级->"环境变量"-"系统变量"中增加变量名PHPRC,数值为php.ini的路径,在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择"属性&

  • WINDOWS 2000下使用ISAPI方式安装PHP

    使用ISAPI方式安装PHP. 下载连接:http://cn2.php.net/get/php-4.4.0-Win32.zip/from/cn.php.net/mirror ISAPI方式是WIN系统IIS下最有效率的PHP执行方式.强烈建议. 解压好PHP后,首先找到php.ini-dist 把-dist   去掉,就成了文本方式显示. 打开PHP.INI  做略微修改.使用查找方式找TMP  找到./TMP着个路劲后,把路劲改成C:/TMP 然后在C盘新建TMP文件夹 全做好以后,拷贝  P

  • PHP5.3.1 不再支持ISAPI

    要在IIS6上使用高版本PHP,必须安装fastCGI扩展, Microsoft FastCGI Extension for IIS 5.1 and 6.0 然后让你的IIS6支持fastCGI即可. 然后设定一下php.ini中的CGI and FastCGI参数: fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect =0 cgi.rfc2616_headers=1 然后制作一个批处

  • 深入理解PHP内核(二)之SAPI探究

    在上篇文章给大家介绍了深入了解PHP内核(一),相信大家通过本文多多少少都学到些知识吧,关于php内核知识继续关注本篇文章. SAPI是Server Application Programming Interface(服务器应用编程接口)的缩写.PHP通过SAPI提供了一组接口,供应用和PHP内核之间进行数据交互. 简单的讲,就像函数的输入和输出一样,我们通过Linux命令行执行一段PHP代码,本质是Linux的Shell通过PHP的SAPI传入一组参数,Zend引擎执行后,返回给shell,由

  • 将php默认的FastCGI模式改成ISAPI模式

    一,下载PHP的ZIP文件包:http://7i24.com/system/dl/,也可以去www.php.net中下载.注意版本要对应. 二,将sapi目录中的:php4isapi.dll复制到c:\php目录中 三,进入虚拟主机管理平台的"网站管理"-"虚拟主机"--服务器设置中,修改PHP的影射,将原来的: .php,C:\PHP\php.exe,5,GET,HEAD,POST,TRACE| 改成: .php,C:\PHP\php4isapi.dll,5,GE

  • 如何使用PHP Embed SAPI实现Opcodes查看器

    PHP提供了一个Embed SAPI,也就是说,PHP容许你在C/C++语言中调用PHP/ZE提供的函数.本文就通过基于Embed SAPI实现一个PHP的opcodes查看器. 首先,下载PHP源码以供编译, 我现在使用的是PHP5.3 alpha2 进入源码目录: ./configure --enable-embed --with-config-file-scan-dir=/etc/php.d --with-mysql  --with-config-file-path=/etc/  ./ma

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

    1.CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求.这样,当用户请求数量非常多时,会大量占用系统的资源,如内存.CPU时间等,造成效能低下. 2.ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器

  • IIS6下配置fastcgi的php的教程

    FastCGI的IIS模块可以让流行的应用框架在IIS上支持FastCGI协议以提供高性能和可用性的访问服务,FastCGI面向现有的网络服务器提供高性能的CGI替代标准.具体PHP 安装方法我记录下来,其中包括出现的一个错误.环境: 操作系统:Windows 2003 Server PHP版本:PHP5.25 1.下载FastCGI For IIS6 http://www.microsoft.com/downloads/details.aspx?FamilyID=2d481579-9a7c-4

  • XCache在Win2003 IIS6下的成功配置方法与疑难解答

    XCache是一种新的php缓存器,经过本人测试,在Windows下效果比同类软件强很多. 实际测试效果如下(非科学方法): 原网页平均执行时间: 0.13 秒 加速后网页平均执行时间: 0.03秒 原CPU占用率: 15% - 60% 加速后CPU占用率: 3% - 30% 由上数据可以看出,使用这个加速器可以很大程度的降低CPU占用(但会造成更多的内存占用),并使网页执行时间缩短. 由于其他同类软件对Windows的支持不够好,所以选用XCache. 网上很多说明都不够详细,所以给大家写一篇

  • win2003服务器之用Zend和eAccelerator在IIS6下同时加速

    它还有对脚本起优化作用,以加快其执行效率.使您的PHP程序代码执效率能提高1-10倍: 官方主页: http://eaccelerator.net 在Zend Optimizer的基础上再运行eAccelerator,我的PHP测试环境主要是Windows的IIS6+php-5.2.13环境,我在本机服务器和远程VMWARE主机上安装都轻松配置成功,但是在一台远程VPS服务器上安装,却怎么都没有安装成功,PHP版本和对应的eAccelerator从PHP5.2.13一直降到PHP5.2.11,

  • Linux系统下使用XHProf和XHGui分析PHP运行性能

    什么是性能分析? 性能分析是衡量应用程序在代码级别的相对性能.性能分析将捕捉的事件包括:CPU的使用,内存的使用,函数的调用时长和次数,以及调用图.性能分析的行为也会影响应用性能. 什么时候应该进行性能分析? 在考虑是否进行性能分析时,你首先要想:应用是否存在性能问题?如果有,你要进一步考虑:这个问题有多大? 如果你不这样做,将会陷入一个陷阱--过早优化,这可能会浪费你的时间. 为了评断应用是否存在性能问题,你应该确定性能目标.例如,100 个并发用户的响应时间小于 1s .然后,你需要进行基准

  • IIS下PHP的三种配置方式对比

    在Windows IIS 6.0下配置PHP,通常有CGI.ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异.   1.CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求.这样,当用户请求数量非常多时,会大量占用系统的资源,如内存.CPU时间等,造成效能低下.   2.ISAPI(

  • Win2003 R2 SP2 64位服务器系统 配置PHP+IIS6

    有人会问,我为什么不用Apache来配置,因为我的服务器还要运行一个.NET的网站,而且网站和论坛之间实现了同步注册和登陆. FastCGI是IIS下配置PHP的一个新东西,配置方便,不受PHP的32或64位影响.但是问题也存在,最近论坛总是时快时慢,慢的时候响应超过20秒,最近几天还出现php-cgi.exe进程爆增的情况,一次出来超过30个进程,导致服务器卡死,只有重新回收程序池才能处理掉,这样就非常差劲. 因为这样的情况我又想用会原来的ISAPI方式来运行PHP了, 也就是刚刚我才把ISA

  • FastCGI Error Number: 5 (0x80070005)解决方法

    今天使用微软的FastCGI来搭建php在windows2003+IIS6下的运行环境,出现如下问题. 复制代码 代码如下: FastCGI Error The FastCGI Handler was unable to process the request. Error Details: Error Number: 5 (0x80070005). Error Description: 拒绝访问. HTTP Error 500 - Server Error. Internet Informat

  • Win2003下配置iis+php+mysql+zend图文 使其支持asp,.net,cgi,perl和php

    所需软件: ActivePerl.PHP.MYSQL.Zend (一.安装IIS6.0;二.配置PHP环境;三.安装mysql;四.安装 Zend Optimizer;五.配置PHPMYADMIN) Win2003配置下iis+php+mysql+zend 2.下载php环境的相应的软件(下载地址:http://s.jb51.net/ )推荐配置:php-5.2.1-Win32.zip . mysql-5.0.37-win32.zip . ZendOptimizer-3.3.3-Windows-

随机推荐