天空小小岛技术论坛

 找回密码
 注册
搜索
查看: 15949|回复: 2
打印 上一主题 下一主题

Windows 2003 IIS + PHP 下支持FASTCGI+WinCache

[复制链接]
跳转到指定楼层
1#
八号 发表于 2011-10-15 14:02:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大中型站点使用X系列产品部署在Win2003服务器上很容易出现CPU100%的情况,经过一段时间的研究和观察总结了以下方案,其实只是给PHP换个运行模式而已,另外加了缓存,情况可以得到部分缓解,具体原因还未查明(顺便求C++高手),以下是处理方法。

首先要判断是不是典型的100%现象,这个很容易,直接看任务管理器里的进程,是不是w3wp.exe在绝对占用CPU就可以了,典型的100%现象是一直100%的,不是大幅度跳跃,这样说应该很通俗吧。

下面就开始处理了,需要做一些准备

Microsoft Visual C++ 2008 Redistributable Package (x86)
http://www.microsoft.com/downloa ... 1-8A4D-074B9F2BC1BF
IIS6的FCGI组件
http://www.iis.net/download/fastcgi
fastcgi 需在php的版本必须为nts  即非线程安全 即,所以我们选择PHP5.3.X,nts版本
http://windows.php.net/downloads ... s-Win32-VC9-x86.zip
与PHP匹配的WINCACHE版本
http://www.iis.net/download/WinCacheForPHP

上面的东西按规范下载到X:\Server_tools目录,接下来就开始了

1.安装FCGI组件,运行fcgisetup_1.5_rtw_x86.msi,一路next,安装完毕后,打开IIS管理器,左边“Web服务扩展”里会多出一个“FastCGI Handler”,说明组件安装成功。


2.解压php-5.3.6-nts-Win32-VC9-x86.zip,然后更名解压出来的目录为PHP,移动到X:\Server_Core 目录下,授以USERS完全控制权限。


3.编辑C:\WINDOWS\system32\inetsrv\fcgiext.ini
在最底部的[Types]下加入以下内容
  1. php=PHP

  2. [PHP]
  3. ExePath=X:\Server_Core\PHP\php-cgi.exe
  4. InstanceMaxRequests=10000
  5. ;MaxInstances=64
  6. EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
  7. RequestTimeout=30
  8. ActivityTimeout=30
复制代码
X:\Server_Core\PHP\php-cgi.exe 具体路径按需修改


4.安装WINCACHE
到X:\Server_tools目录,运行wincache-1.1.0-5.3-nts-vc9-x86.exe,其实就是自解压,会得到几个文件,我们只需要php_wincache.dll这个文件,复制到X:\Server_Core\PHP\ext目录下。

5.编辑php 解压目录下的 php.ini-production 文件 改名为  php.ini
修改里面的extension_dir 目录为php 解压目录下的 ext 目录的路径

在适当位置指定时区和经纬度,这个其实可有可无,但是为了好看,加了吧date.timezone = "Asia/Shanghai"
date.default_latitude = 31.5167
date.default_longitude = 121.4500
然后查找”WindowsExtensions“,在这个section下添加extension = php_wincache.dll
并且除掉使用到的动态链接态前面的分号
修改完成后将 php.ini 复制到 C:\WINDOWS\php.ini

6.在IIS管理器中变更IIS运行模式
右击站点,弹出站点属性,点”主目录“选项卡,点"配置“,在”应用程序扩展“中找到”.php“,双击进行编辑,浏览选择”C:\WINDOWS\system32\inetsrv\fcgiext.dll“,动作限制为”GET,POST“,确定,完成。


7.重启IIS
开始,运行,cmd,iisreset

IS6下的配置FCGI+Wincache全部完成

常见问题:

1、Error Number:14001 (0x800736b1).错误处理
发生此错误的关键原因在于没有安装VC9运行库 即VISUAL C++ 2008
安装即可

2、windows主机iis配置fastcgi 出现No input file specified 解决办法
http://tkxxd.net/thread-288-1-1.html

3、iis 配置 fastCGI模式的php 出现 Error Number: 5 (0x80070005). 错误
http://tkxxd.net/thread-291-1-1.html

2#
一粒米 发表于 2013-6-24 13:43:21 | 只看该作者
fastcgi
http://www.iis.net/downloads/mic ... additionalDownloads
IIS6
32位操作系统选 x86
64位系统选 x64

php选nts
http://windows.php.net/downloads/releases/
3#
comlet 发表于 2013-10-14 15:46:23 | 只看该作者
那问一下啊,有服务器权限的方法,配置完了之后这些数据从哪里看呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|天空小小岛  |京ICP备2025130156号|

GMT+8, 2025-6-22 05:24 , Processed in 0.104794 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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