到昨天为止,公司的服务器一直是用 ISAPI 方式调用的PHP,但是今天调试一个系统,必须要求 FastCGI 方式。
FastCGI 是可伸缩架构的 CGI 开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的 CGI 解释器的反复加载是 CGI 性能低下的主要原因,如果CGI 解释器保持在内存中并接受 FastCGI 进程管理器调度,则可以提供良好的性能、伸缩性等。
FastCGI 已经集成于 IIS7,我公司的服务器是 Windows 2003 的 IIS6,必需另外安装扩展。到微软网站下载吧 x86 / x64。微软也有官方的安装说明。
其实没那么复杂啦。下面简单说下:
1.下载FastCGI for IIS6 后安装,安装目录是 C:\WINDOWS\system32\inetsrv。
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
2.修改 C:\WINDOWS\system32\inetsrv\fcgiext.ini
在 [Types] 下添加以下配置:
[Types]
php=PHP[PHP]
ExePath=D:\PHP\php-cgi.exe
3.下载 PHP 5 for windows,下载zip文件,下载后解压到 D:\php (其他目录也可,以此为例),并给 IIS 启动帐户组或用户赋予读取和运行权限。
4.将 D:\PHP\php.ini-recommended 复制一个,然后重命名为 D:\PHP\php.ini
打开 D:\PHP\php.ini,修改:
fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
并且根据需要修改php扩展的加载。
5.重启IIS。
6.写个 php 测试下吧
<?php
phpinfo();
?>
打开后如果出现提示:
No input file specified.
估计是没配置php.ini 里的 fastcgi.impersonate=1,去掉注释即可。
如果出现 Error Number:14001错误,则是没有安装 VC9 运行库 即 VISUAL C++ 2008(仅出现于 PHP 5.3,PHP 5.2 没这个问题),下载地址,下载安装后即可正常运行。
网上有人说 Fast-CGI 模式调用要比 ISAPI 快不少,实际用下,普通的应用其实差不多,都挺快的。Fast-CGI 的优点是,不用拷贝 php5ts.dll 和 php.ini 到 Windows 目录下。缺点是,会多一个 php-cgi.exe 进程。
共有 0 条评论