/ 中存储网

iis6服务器中配置PHP运行环境

2014-03-30 14:32:01 来源:kejihao
由于本地电脑系统是window7 windows8系统iis为iis7.5或者是 8 默认是支持FastCGI扩展的,所以配置比较简单,但是在配置服务器上的iis时就遇见了大问题了,因为windows 2003的服务器 iis为iis6,是没有集成FastCGI扩展的,只能配置CGI和ISAPI扩展。

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]”定义。

4、配置网站 右键网站 =》 属性 =》 主目录 =》 配置 =》 添加,如下图配置:

可执行文件路径: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网页了