前面文章谈到,在WINDOWS环境下,FastCGI比ISAPI运行PHP有着更佳的性能,所以把服务器上的PHP环境改为FastCGI了。

在配置完以后,出现错误提示:

Error Details: Could not find entry for "php" on site 2043809562 in
[Types] section. Error Number: 1413 (0x80070585). Error Description:
无效索引。 HTTP Error 500 - Server Error. Internet Information Services
(IIS)

通过检查,原来是FastCGI配置文件没有设置好。

打开:C:\WINDOWS\system32\inetsrv\fcgiext.ini
在最下面添加:

[Types]
php=PHP
[PHP]
ExePath=C:\Program Files\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=300
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:C:\Program Files\PHP\

实际使用效果如何呢?

最明显的感受,就是速度明显变快了。

之前是环境是ISAPI PHP5.2.17nt + zend3.3.3 + xcache,新环境FastCGI php5.2.17nts + Wincache。
前面打开discuzX3.2论坛用时0.08ms-0.15ms左右,后面用时0.02ms-0.08ms左右。

还有一个最大的改变,就是内存占用飙升。

之前整个服务器内存使用在600-800MB左右,使用FastCGI以后,内存占用瞬间升到1500MB了(而且还是在凌晨网站访问量较低的情况下),进程管理器中出现了大量的php-cgi.exe进程。

在FastCGI配置文件中,添加了 maxInstances=1 依然没有缓解这个问题。

无奈之下,又把FastCGI换回了ISAPI。

最后得出的结论是:
FastCGI性能确实高于ISAPI,但内存消耗也增加了许多。
如果是少量网站或追求性能,FastCGI是不错的选择(有评测认为windows+FastCGI甚至并不弱于linux环境运行PHP)
如果网站数量较多,或者内存不够宽裕,还是低调地用ISPAI吧。

标签: php, windows2003, iis6, fastcgi, isapi

添加新评论