Win2003 iis6 php5.3.6 mysql5.5.20

php

2012-06-27 12:43

 

最新版是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)

下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn (1.7M)

下载后安装就可以了。

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 一路回车发即可。很简单参考以下

http://hi.baidu.com/code__/item/c5ec4891368634f4291647d9