Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Windows 2003下支持FCGI+WinCache

[复制链接]
老谁家的小谁 发表于 2011-8-29 12:11:54 | 显示全部楼层 |阅读模式
本帖最后由 老谁家的小谁 于 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
安装即可

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ARCHY` 发表于 2011-8-29 12:22:01 | 显示全部楼层
沙发支持下!!1
回复

使用道具 举报

90n.org 发表于 2011-8-30 15:14:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

yujie8348 发表于 2011-8-30 15:22:13 | 显示全部楼层
之前的VPS用的就是这个模式,无奈本人VPS内存是256M的,运行起来有点处理,于是乎还是用LNMP组合吧~
回复

使用道具 举报

hzg4027 发表于 2011-9-30 11:57:00 | 显示全部楼层
报错...........!!!!!!
FastCGI Error

The FastCGI Handler was unable to process the request.
Error Details:

The FastCGI process exited unexpectedly
Error Number: -2147467259 (0x80004005).
Error Description: Î′Ö¸¶¨μÄ′íÎó
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
回复

使用道具 举报

hzg4027 发表于 2011-9-30 14:33:30 | 显示全部楼层
改成php5.2.17可以了.
cpu占用有所好转,但还是很不稳定,20%-100%之间徘徊
回复

使用道具 举报

52bbw 发表于 2011-10-5 14:52:16 | 显示全部楼层
过来学习一下,水平有限,看起来很复杂!
回复

使用道具 举报

hzg4027 发表于 2011-10-9 12:47:13 | 显示全部楼层
问题太多了,现在是只要一更新缓存,整个论坛就挂掉打不开了...必须得重启
回复

使用道具 举报

hzg4027 发表于 2011-10-10 22:47:47 | 显示全部楼层
php-cgi.exe进程时不时就会上百个,然后服务器就挂了!
回复

使用道具 举报

waha590927 发表于 2011-11-4 02:17:04 | 显示全部楼层
收藏备用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 13:44 , Processed in 0.027261 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表