-
iis6和php-cgi.exe进程问题解决办法 - 2008/8/31 16:15:28 发布:walf_man
-
今天给windows server 2003 上的iis6添加了php-cgi的扩展,下面分享一下这之间的问题和经验
首先来说明iis6支持php解析的三种方式
1.isapi
这是iis应该首选的方式,速度极快,占用资源极少,配置极其方便灵活
但是长久(其实isapi出来不算久,所以问题比较多,需要完善)以来,php对于isapi的支持都是运行时间久了,会锁死iis,这个造成服务器不稳定,不过其实这不算什么,因为我们还可以通过设置iis的应用程序池来最大限度的保证稳定
不过这其实不是我不愿意使用isapi的原因,如果不是因为isapi模式需要将php.ini放置于系统盘windows,我是首选isapi模式的,方便,省资源,负载好,速度快都是选择的理由
只可惜啊,为什么一定要将php.ini放在系统盘windows目录呢?不能跟随php目录吗?
这点希望微软和php能够早日协商解决这个问题,呵呵,不过这也的确是个无关紧要的小问题,或者本来就应该是这样,因为我们是isapi嘛~
这种方式的配置方法很简单
可以参阅这篇文章:IIS6.0+PHP+ASP+MYSQL优化配置
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呢
配置cgi,也可以参阅这篇文章:IIS6.0+PHP+ASP+MYSQL优化配置
iis7的isapi和cgi模式配置方法和iis6大同小异可以参阅这篇文章:配置iis7+php+mysql+zend+gd+asp+.net+access+jsp
本文为原创,可以随意转载,但是请保留此信息和链接:
iis6和php-cgi.exe进程问题解决办法 @ 网络超市博摘
3.fast-cgi
这个模式是后来出现的,iis7直接集成,名字叫fast-cgi模块(组件)
但是iis6原生是没有的,不过目前微软已经提供免费下载了
地址:FastCGI Extension for Internet Information Services 6.0
下载以后安装,然后参考这篇文章进行配置:在IIS6上如何使用FastCGI,如何配置php的fastcgi模式
实际上安装好以后完全不用那么麻烦,只需用记事本打开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模式是一样的
iis7的配置很简单,大家可以参考这篇文章:IIS7下以FastCGI模式运行PHP的配置方法
发表评论:
给我留言