最新版是5.3.x的Windows版已经不支持ISAPI模式了
我们知道php配置有几种:
1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。
特点是:稳定,但效率太低。
2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。
特点是:多线程,效率较高,但不够稳定。
3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。
特点是: 高效率,高稳定性,属于将来发展趋势。
我试过其他的特别麻烦,PHP 5.3发布的Windows版已经不支持ISAPI模式了,所以我打算按微软推荐的FastCGI方式运行PHP。
VC6是什么?
VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9是什么?
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。
那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在 windows下使用IIS+PHP的,请选择VC9版本;
那Non Thread Safe是什么?
Non Thread Safe就是非线程安全;
Thread Safe 是什么?
Non Thread Safe 是线程安全;
FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 msi套件)所以我们 选择NO-Thread Safe 版本的PHP来使用 。
而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。
为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解
决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了
CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。
因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。
如何查看当前运行的PHP的版本?一个很简单的办法就是phpinfo();
Thread Safety disabled是NTS,enabled是TS
FASTCGI
http://www.iis.net/download/fastcgi 下载x86
[安装FASTCGI时,需要.net2.0以上、windows 2003 sp2 或以上VC9运行库 即VISUAL C++ 2008
如果已经是windows 2003 sp2 就OK 直接安装FASTCGI
安装php5.3.6
建议使用.zip而不实用.msi的安装版,此例以zip为例
解压php-5.3.6-Win32-VC9-x86到C:\php下
配置 php.ini
将 C:\PHP\php.ini-production 复制一个,然后重命名为 C:\PHP\php.ini
打开 C:\PHP\php.ini,
extension_dir = "C:/php/ext"
date.timezone=PRC
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_gd2.dll
extension=php_curl.dll
extension=php_mbstring.dll
安装后在 C:\WINDOWS\system32\inetsrv 发现多了 fcgiext.ini fcgiext.dll
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler
注册 PHP 到 FastCGI:
打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件
在 [Types] 下添加以下配置:
[Types]
php=PHP
[PHP]
ExePath=C:\PHP\php-cgi.exe
“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。
配置网站
右键网站 =》 属性 =》 主目录 =》 配置 =》
C:\WINDOWS\system32\inetsrv\fcgiext.dll
.php
index.php测试页
<?php
phpinfo();
?>
若出现如同下面的错误,说明你的电脑没有安装VC9运行库 即VISUAL C++ 2008
Microsoft Visual C++ 2008 Redistributable Package (x86)
下载后安装就可以了。
FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------
Error Details:
Error Number: 14001 (0x800736b1).
Error Description: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
mysql 一路回车发即可。很简单参考以下