本帖最后由 老谁家的小谁 于 2011-8-29 12:11 编辑
大中型站点使用X系列产品部署在Win2003服务器上很容易出现CPU100%的情况,经过一段时间的研究和观察总结了以下方案,其实只是给PHP换个运行模式而已,另外加了缓存,情况可以得到部分缓解,具体原因还未查明(顺便求C++高手),以下是处理方法。
首先要判断是不是典型的100%现象,这个很容易,直接看任务管理器里的进程,是不是w3wp.exe在绝对占用CPU就可以了,典型的100%现象是一直100%的,不是大幅度跳跃,这样说应该很通俗吧。
下面就开始处理了,需要做一些准备
Microsoft Visual C++ 2008 Redistributable Package (x86) IIS6的FCGI组件 最重要的,PHP5.3.X,nts版本,就是非线程安全版本 http://windows.php.net/downloads/releases/php-5.3.8-nts-Win32-VC9-x86.zip 与PHP匹配的WINCACHE版本
上面的东西按规范下载到X:\Server_tools目录,接下来就开始了
1.安装FCGI组件,到X:\Server_tools目录,运行fcgisetup_1.5_rtw_x86.msi,一路next,安装完毕后,打开IIS管理器,左边“Web服务扩展”里会多出一个“FastCGI Handler”,说明组件安装成功。
2.到X:\Server_tools目录,解压php-5.3.6-nts-Win32-VC9-x86.zip,然后更名解压出来的目录为PHP,移动到X:\Server_Co目录下,授以USERS完全控制权限。
3.编辑C:\WINDOWS\system32\inetsrv\fcgiext.ini
在最底部的[Types]下加入以下内容
php=PHP
[PHP]
ExePath=X:\Server_Core\PHP\php-cgi.exe
InstanceMaxRequests=10000
;MaxInstances=64
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
RequestTimeout=30
ActivityTimeout=30
具体路径按需修改,你们懂得
4.安装WINCACHE
到X:\Server_tools目录,运行wincache-1.1.0-5.3-nts-vc9-x86.exe,其实就是自解压,会得到几个文件,我们只需要php_wincache.dll这个文件,复制到X:\Server_Core\PHP\ext目录下。
5.编辑C:\WINDOWS\php.ini
在适当位置指定时区和经纬度,这个其实可有可无,但是为了好看,加了吧date.timezone = "Asia/Shanghai"
date.default_latitude = 31.5167
date.default_longitude = 121.4500
然后查找”WindowsExtensions“,在这个section下添加extension = php_wincache.dll
6.在IIS管理器中变更IIS运行模式
右击站点,弹出站点属性,点”主目录“选项卡,点"配置“,在”应用程序扩展“中找到”.php“,双击进行编辑,浏览选择”C:\WINDOWS\system32\inetsrv\fcgiext.dll“,动作限制为”GET,POST“,确定,完成。
7.重启IIS
开始,运行,cmd,iisreset,你们懂得。
IIS6下的配置FCGI+Wincache全部完成,欢迎指正。
常见问题:
1.Error Number:14001 (0x800736b1).错误处理 发生此错误的关键原因在于没有安装VC9运行库 即VISUAL C++ 2008 安装即可
|