IIS6下配置fastcgi模式的php5.3.6高级进阶

FastCGI的优化配置

FastCGI优化配置文件fcgiext.ini,它在%windir%\system32\inetsrv里。我们将尝试用两种办法进行配置:FastCGI管理脚本fcgiconfig.js;记事本编辑fcgiext.ini。

脚本配置FastCGI

打开你的命令行cmd.exe,切换到目录 %windir%\system32\inetsrv。复制下面内容,回车执行以下即可完成。请根据需要设置后面的参数。

1 cscript fcgiconfig.js -set -section:"PHP"-InstanceMaxRequests:5000
2
3 cscript fcgiconfig.js -set -section:"PHP"-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:5000
4
5 cscript fcgiconfig.js -set -section:"PHP"-RequestTimeout:360
6
7 cscript fcgiconfig.js -set -section:"PHP"-ActivityTimeout:120

脚本的含义,分别是:

  1. 设置应用程序池回收。FastCGI进程请求数达到InstanceMaxRequests数值5000,应用程序池将自动回收。默认值是1000。
  2. 当环境变量PHP_FCGI_MAX_REQUESTS达到10000将自动回收应用程序池。
  3. RequestTimeout 设置请求超时时间,也就是请求允许的最大时间,如果FastCGI进程请求超过此设置将被禁止,值是90秒。
  4. ActivityTimeout 指定FastCGI进程请求的最大活跃时间,在设定时间内,FastCGI进程和IIS没有通信,将终止进程。默认值是70秒。

注意:脚本命令是全局设置,针对服务器上所有以FastCGI运行的PHP网站。因此对于多站点的虚拟机来说,InstanceMaxRequests设置成PHP网站数X500相对理想。

500是变数。如果有10个网站,那么200X50=5000,类推。流量大的服务器,数值设置过小频繁回收应用程序池,并不是什么明智的做法。——虽然,系统回收了不少资源。

RequestTimeout数值过大,无疑将让更多消耗系统资源的请求运行;ActivityTimeout设置为120秒不活动就断开好,还是30秒不活动就断开好,因人而异。

复制粘贴适合懒人
IIS6下配置fastcgi模式的php5.3.6高级进阶FastCGI配置文件fcgiext.ini设置

InstanceMaxRequests=10000

EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

RequestTimeout=360

ActivityTimeout=120

把上面代码复制到fcgiext.ini的末尾,保存就好了。

PHP5.3.6的优化配置

PHP5.3.6的php.ini配置也分为两部分:关于FastCGI的配置;关于PHP本身的配置。我的PHP5.3.6安装在C:\PHP。

PHP.ini关于FastCGI部分

fastcgi.impersonate = 1

cgi.fix_pathinfo=1

cgi.force_redirect = 0

它们的说明,请参考cgi.force-redirectcgi.fix-pathinfofastcgi.impersonate

PHP.ini关于自身的部分

一、搜索extension_dir,去掉前面注释“;”,修改成:

1 extension_dir = "c:/php/ext"

二、搜索date.timezone,去掉前面注释“;”,修改成:

1 date.timezone = "asia/shanghai"

三、搜索下面,然后去掉前面的注视“;”

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

如此这般你的PHP基本可以畅通无阻了。至于一些更高级的修改,我们没有必要研究那么深,不是吗?