1.首先必须明白PHP的两种执行方式:ISAPI和FastCGI。
(1)ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。
(2)FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。
FastCGI已经集成于IIS7也支持IIS6,在IIS6中的安装方法以下详述。
2.PHP5.3.6文件里面没有php5isapi.dll取而代之的是php5nsapi.dll原因:
PHP5.3 是不能在IIS6上面通过ISAPI扩展运行的,而且在PHP5.3 文件里面也没有php5isapi.dll,取而代之的是php5nsapi.dll,换句话说PHP5.3以后的版本就不再用ISAPI进行扩展在IIS里运行了,只能通过FastCGI的方式执行。据说它的效率很高的哟。(一直郁闷为什么我下载的php没有php5isa.dll,没想到PHP5.3不支持ISAPI了,晕哦)
而因CGI性能差的原因,现在主要都是扩展ISAPI,又因isapi比较麻烦 所以弄了一整天还是没有成功,最后看到有人说iis6可以安装一个FastCGI扩展包就可以扩展FastCGI了。既然可以 那就试试吧。
FASTCGI http://www.iis.net/expand/FastCGI 下载X86版本)
本文默认你是配置好php环境的了,如果没有请查看 windows7+iis下 php+mysql+iis+phpmyadmin手动配置 该文虽然是windows7下配置但是php环境的配置还是一样的。
下面就开始用FastCGI扩展吧。(再说一句:FastCGI是必须.Net FrameWork3.5或以上版本和Windows 2003 SP2或以上版本的;并且php5.3以后就不支持ISAPI扩展了)
安装FastCGI后在 C:WINDOWSsystem32inetsrv 目录下产生了五个文件。如下图
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler
注册 PHP 到 FastCGI: 打开 C:WINDOWSsystem32inetsrvfcgiext.ini 文件 在 [Types] 下添加以下配置:
[Types] php=PHP [PHP] ExePath=C:PHPphp-cgi.exe “php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。
|
可执行文件路径:C:WINDOWSsystem32inetsrvfcgiext.dll
5、写文件测试 index.php测试页 此时如果产生如下错误 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 的读取和运行权限即可!
然后就可以打开php网页了
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。