发新话题
打印

php在iis6里如何以fast-cgi模式运行

php在iis6里如何以fast-cgi模式运行

这个模式是后来出现的,iis7直接集成,名字叫fast-cgi模块(组件)
但是iis6原生是没有的,不过目前微软已经提供免费下载了
FastCGI Extension for Internet Information Services 6.0

用记事本打开fcgiext.ini文件
在最后面[Types]下面加入

PHP=D:\PHP5\php-cgi.exe  
[D:\PHP5\php-cgi.exe]  
QueueLength=1000  
MaxInstances=4  
InstanceTimeout=30  
InstanceMaxRequests=1000  
就可以了,其中的路径根据自己的实际情况修改
那四个参数根据自己配置修改,也完全可以删掉,使用默认值
最后就成为这样
[Types]  
PHP=D:\PHP5\php-cgi.exe  
[D:\PHP5\php-cgi.exe]  

保存文件,然后在使用php的网站上右键-属性-主目录-配置(就是打开父目录的地方)-isapi扩展缓存(第一个选项卡)里面添加
路径:%windir%\system32\inetsrv\fcgiext.dll
扩展名:.php
如果以前添加过php扩展的,可以修改或者删除重建
ok,重起iis,看下效果
速度也是急速,而且也很稳定,phpinfo和phpmyadmin一下就好,比cgi模式快了何止2倍,和isapi模式比不出来,除非专门测试,否则我感觉两个都很快
不过和isapi模式相比除了iis应用程序池w3wp.exe以外还会打开一个php-cgi.exe进程,和cgi模式相比,这个php-cgi.exe进程不会立刻关闭,而是长时间没有用的时候自动回收
有些人可能会出现2个php-cgi进程或者更多,这大概是因为你有多个网站在使用php,这点和cgi模式是一样

TOP

首先来说明iis6支持php解析的三种方式
1.isapi
这是iis应该首选的方式,速度极快,占用资源极少,配置极其方便灵活
但是长久(其实isapi出来不算久,所以问题比较多,需要完善)以来,php对于isapi的支持都是运行时间久了,会锁死iis,这个造成服务器不稳定,不过其实这不算什么,因为我们还可以通过设置iis的应用程序池来最大限度的保证稳定
不过这其实不是我不愿意使用isapi的原因,如果不是因为isapi模式需要将php.ini放置于系统盘windows,我是首选isapi模式的,方便,省资源,负载好,速度快都是选择的理由
只可惜啊,为什么一定要将php.ini放在系统盘windows目录

2.cgi
这个模式稳定是没什么说的,但是很占资源,使用起来,可以明显地感觉到速度相当慢,而且极耗资源,硬盘狂闪,不知道是不是我的配置有问题,但是同样的配置,在isapi模式下和下面要讲的fast-cgi模式下都很快,可以用急速来形容
而且,我的php-cgi.exe进程当浏览php文件的时候,它就出现占用10m左右内存,然后当页面完全载入,也就是php解析完毕的时候,他就自动关闭了,我不知道这是我的配置文件没有配置对,还是就是这样,不知道起他朋友是不是这个情况,当然这个情况只出现在2003 iis6的cgi模式下,我的2008 iis7的cgi模式一切正常,php-cgi.exe会驻留内存知道很久不使用才会被回收.
正是因为这样,浏览php时,你就看任务管理器里的php-cgi.exe进程就像是坐电梯一样,一会飞速上升一会飞速下降直至消失
登陆个phpmyadmin那个时间真是,以为我服务器是286呢

3、fast-cgi
详细见上文

TOP

发新话题