IIS下CGI支持PHP5
    本来在WIndows下 用Apache+php5+mysql挺好的 可以装防火墙后 从启系统 系统出错 把防火墙卸载后 Apache又恢复正常 可网络连接出错 搞了一上午实在是弄不好 决定放弃Apache  用IIS来支持PHP 
都知道 php4都是用ISAPI来支持IIS的 可到PHP5后 ISAPI就不行了 当时我还不知道 那天弄了半天 
当然以前下的 php5.3-wiin-VC6用不了了 VC6是Apache下的从下个PHP5.3-win-x86-vc9    
准备软件: 
PHP5.3.3:           http://www.php.net/downloads.php 
FastCGI For IIS6:   http://www.iis.net/expand/fastcgi 
Microsoft Visual C++ 2008: 
Http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn 
第1步: 
安装 FastCGI For IIS6 
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件 都是fgci开头的 
同样 
在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler 
第2补: 
解压 php-5.3.3 压缩包 我放在D:/PHP 文件里面 
给PHP文件设置权限 USER读取  
第3步: 
注册PHP到FastCGI 
打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件 
在 [Types] 下添加以下配置: 
[Types] 
php=PHP 
[PHP] 
ExePath=D:\PHP\php-cgi.exe 
   这里要用:“\”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 
第4步: 
复制一份php.ini-production 改名为php.ini 
在Windows下设置D:\php;D:\php\ext 为环境变量 
配置php.ini 文件 
fastcgi.impersonate = 1 
cgi.fix_pathinfo=1 
cgi.force_redirect = 0 
display_errors = On 
display_startup_errors = On 
error_prepend_string = "" 
error_append_string = "" 
extension_dir = "D:\php\ext\" 
fastcgi.impersonate = 1 
date.timezone = asia/Shanghai 
下面模块前的 ; 去掉 
; extension=php_curl.dll 
; extension=php_gd2.dll 
; extension=php_ldap.dll 
; extension=php_mbstring.dll 
; extension=php_exif.dll 
; extension=php_mysql.dll 
; extension=php_mysqli.dll 
; extension=php_sockets.dll 
; extension=php_xmlrpc.dll 
[时区修改] 
date.timezone = Asia/Shanghai 
[session目录] 
session.save_path = "D:/PHP/tmp" 
phpadmin容易报错的原因 
保存php.ini 
第5步: 
配置网站 
打开IIS管理器,网站上点右键-属性-主目录-配置-添加 
添加扩展名映射: 
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll 
扩展名: .php 
允许动作: GET,HRAD,POST 
确定 
第6步: 
安装 
Microsoft Visual C++ 2008  
不安装的话会报错 Error Number: 14001 (0x800736b1) 
注: 
时区问题  date.timezone = asia/Shanghai 
开始我后面打错了 一直报500内部服务器错误 
找了半天才找到原因 
     运行D:\PHP\PHP5\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,否则会提示错误 
    重启 IISReset     
测试 
PHP.ini 其他设置 
1。    查找:;session.save_path = "/tmp" (约第1466行) 
    将前面的分号注释符去掉,这里将其设置为session.save_path = "D:/PHP/tmp" (这里就是我前面建立的文件夹) 
2。    如果你有遇到无法上传较大文件或者运行某些程序经常超时,那么可以修改以下内容来调整相关限额: 
    在大约第440行, 
    max_execution_time = 30 ; 这个是每个脚本运行的最长时间,根据你的需求更改数值,单位秒 
    max_input_time = 60 ; 这是每个脚本可以消耗的时间,根据你的需求更改数值,单位也是秒 
    大约第458行, 
    memory_limit = 128M ; 这个是脚本运行最大消耗的内存,根据你的需求更改数值,256M。 
        大约第732行,     
        post_max_size =10M 
       表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的. 
        限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...根据你的需求更改数值,M是单位:兆。 
    大约第883行, 
    upload_max_filesize = 2M ; 
    上载文件的最大许可大小 ,根据你的需求更改数值,M是单位:兆。 
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个. 
【错误解决】
错误1:
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 Inform