天空小小岛技术网站

标题: Windows 2003 IIS + PHP 下支持FASTCGI+WinCache [打印本页]

作者: 八号    时间: 2011-10-15 14:02
标题: Windows 2003 IIS + PHP 下支持FASTCGI+WinCache
大中型站点使用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


作者: 一粒米    时间: 2013-6-24 13:43
fastcgi
http://www.iis.net/downloads/mic ... additionalDownloads
IIS6
32位操作系统选 x86
64位系统选 x64

php选nts
http://windows.php.net/downloads/releases/
作者: comlet    时间: 2013-10-14 15:46
那问一下啊,有服务器权限的方法,配置完了之后这些数据从哪里看呢?




欢迎光临 天空小小岛技术网站 (http://tkxxd.net/) Powered by Discuz! X3.1