Windows 2003 IIS + PHP 下支持FASTCGI+WinCache

有服务器操作权限,请把 php 安装成 fastcgi 的模式,这样就能正常读取到 $_SERVER['REMOTE_PORT'],否则的话就没办法的。
 

yyyyQQ截图20130624142643.jpg 


fastcgi 需要看一下是否更新了这个补丁
http://technet.microsoft.com/zh-cn/security/bulletin/MS10-065


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”,说明组件安装成功。
1.jpg 

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

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 具体路径按需修改
3.jpg 

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“,确定,完成。
4.jpg 

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

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

常见问题:

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

2、windows主机iis配置fastcgi 出现No input file specified 解决办法
windows主机iis配置fastcgi 访问其它页面正常访问,php页面出现
  1. No input file specified
复制代码
解决办法:
设置目录的站点上级目录权限

3、iis 配置 fastCGI模式的php 出现 Error Number: 5 (0x80070005). 错误
104748dmfpfpm2bcx5fdfv.jpg 



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

Unable to place a FastCGI process in a JobObject. Try disable the Application Pool CPU Limit feature ‍

//无法放置在JobObject FastCGI进程。尝试禁用应用程序池的CPU监视功能
Error Number: 5 (0x80070005). 
Error Description: ?ü??·??ê?£ 
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

应用程序池中启用了CPU监视,‍FASTCGI模式不支持CPU监视,禁用CPU监视后就正常了。

FastCGI Error

The FastCGI Handler was unable to process the request.

Error Details:

Error Number: 5 (0x80070005).
Error Description: 拒绝访问。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

这是一个配置 iis+FastCGI 的时候都会遇到常见问题。
问题分析:Error Description拒绝访问,运行php权限设置不对或者是权限给的不够。
解决方法:给PHP目录添加user 的读取和运行权限即可!
当前地址:http://www.qibosoft.com/help/?Url=http://www.qibosoft.com/help/content.php?fid=6&id=100&mid=1