IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

说明:

本帖是我经过一天一夜完成的,不同于一般网上文章,除详细的将整个配置过程和 测试过程都详细截图说明外,尤其在FastCGI方面采用微软的“web平台安装程序”来配置,网上相关内容很少,对gzip的设置也很详细,保证按图操 作即可独立完成。另外,还有详细的测试gzip压缩率的方法和比较。

文中对于理论几乎没有阐述,只是对配置过程进行了最详细的介绍,这样 使新手即使不太明白,照本文也可以配置出一样的环境来,本文章的错误及疏漏之处,还请大家指出来,大家在配置中有何问题,我们一起来探讨解决。

本 帖旨在帮助新手快速配置出IIS + FastCGI + PHP5.3 + MySQL5.1 + Gzip环境,高手可以飘过,本文里面图片较多,每步操作均有详细的图片说明,只要照做,均可一次配置成功。

如果您阅读本文后有所收获, 本人很高兴。

今天零晨的世界杯,不出意料的,西班牙夺冠

下面是正文,图片较 多,所以全部图片均存放于我自己的网站上,用链接引用过来,上面有些许水印,方便大家转载,也希望大家见谅。

============================================

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip  详细配置图文教程

本文所用的软件名称及下载地址:

PHP5.3.2:php- 5.3.2-nts-Win32-VC9-x86.zip

地址:

http://windows.php.net/downloads/releases/php-5.3.2-nts-Win32-VC9-x86.zip

MySQL:mysql-essential-5.1.48-win32.msi

地址:

http://windows.php.net/downloads/releases/php-5.3.2-nts-Win32-VC9-x86.zip

FastCGI:这个有两种配置方法,正文中详细介绍

phpMyAdmin: 本文用的是3.3.4版

Zend Optimizer:目前的Zend Optimizer还不支持PHP5.3.2 ,等出新版后我们再装。

前 言:PHP5.3的版本选择

现在的PHP5.3 For Windows一共给了四个版本:VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,参考PHP官网提供下载的地方左边的英文来看看这几个版本有什么区别。

一、如何选择PHP5.3的VC9版本和 VC6版本

VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。

VC9 版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。

二、如何选择 PHP5.3的Thread Safe和Non Thread Safe版本

先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看PHP的两种执行方式:ISAPI和FastCGI。

ISAPI 执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线 程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

而FastCGI执行方式是 以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效 率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

我 们使用IIS+FastCGI方式配置服务器环境,所以使用Non Thread Safe版本。

了解了如何选择PHP版 本,下面开始我们的IIS+PHP5.3+MySQL5.1+Gzip的配置过程

第一步:手工配置PHP5.3

下载目前为 止最新版的PHP5.3.2

因为手工配置更灵活且更能了解细节,所以我们介绍手工配置PHP,所以选择下载zip文件:php- 5.3.2-nts-Win32-VC9-x86.zip。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

1、 解压php-5.3.2-nts-Win32-VC9-x86.zip至安装目录,这里是C:\

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

2、打开php-5.3.2- nts-Win32-VC9-x86,建立php.ini文件

复制一个新的php.ini-development文件,并将文件名改为 phi.ini。

如下图

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

3、打开php.ini文件,修 改extension_dir的值

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

修改data.timezone 的值

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

选择启用模块:将用到的模块前 的;去掉,注意启用php_exif.dll时,必需将其放在mbstring后面,即将php_exif.dll剪切到 php_mbstring.dll后面。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

配置FastCGI模式时,将 cgi.force_redirect设置为0,将cgi.rfc2616_headers和fastcgi.impersonate设置为1。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

稍 候我们会使用iProber探针来检测php环境,所以这里必须开启short_open_tag = On,否则,会出现“iProber.php on line 910”错误。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

至此,php部分配置完毕。下面 我们来在IIS里添加对php的支持,当然,我们采用的FastCGI方式。

第二步:配置IIS的FastCGI模块

为 IIS增加FastCGI模块有两种方式,一种是直接下载FastCGI Extension文件,另一种是使用微软的“web平台安装程序”,在这里我们介绍后者。

第一种方式中FastCGI Extension 文件的名称和下载地址为:

文件名:FastCGI Extension 1.5 for IIS 6.0 and IIS 5.1 - RC (x86)

地址:http://www.iis.net/downloads/default.aspx?tabid=34&i=1877&g=6

该安装程序需要.net 2.0支持,请确认已经安装.net Framework2.0。

下面我们来介绍使用微软的“web平台安装程序”来配置FastCGI。

1、 FastCGI第一步:打开微软的“web平台安装程序”,网址是:

http://www.microsoft.com/web/gallery/install.aspx?appid=fastcgiiis6

打开该网址单击下面红框内的按钮,进入下一步。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

在弹出的对话框里,单击运行。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

弹出安全警告对话框,再次单击运行。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

接下来是下载web安装程序对话框

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

下载完安装程序后是加载web平台

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

加载完后,弹出FastCGI安装程序对话框,单击安装继续。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

接下来是同意条款,单击我接受

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

正式进入安装,由于文件较小,安装过程非常迅速。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

稍候即完成安装!

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

最后,单击退出并关闭IE

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

2、 下面在IIS服务里面进行配置,在IIS里右击“网站”节点,然后单击属性,弹出属性对话框。如图

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

单 击“主目录”选项卡,然后单击“配置”按钮

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

单 击添加,添加一个新的ISAPI项

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

在 C:\window\system32\inetsrv目录下,选中fcgiext.dll

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

注意,这里别忘了添加.php扩展名

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

在C:\windows\system32\inetsrv文件夹中,找到fcgiext.ini文件,并打开

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

在 fcgiext.ini文件底部添加如下配置信息:

[Types]

php = PHP

[PHP]

ExePath=C:\php-5.3.2-nts-Win32-VC9-x86\php-cgi.exe

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

至 此,FastCGI配置完成,下面我们来测试下是否配置正确,将iProber探针程序复制到web目录

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

在 浏览器输入:http://127.0.0.1/i/iProber.php ,输出如下图:

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

我 们看到以下信息

PHP运行方式 CGI-FCGI

PHP版本 5.3.2

说 明IIS+PHP的FastCGI方式配置成功!

注意,如果出现以下错误信息

============================

Error Details:

Error Number: 14001 (0x800736b1)。

Error Description: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。

HTTP Error 500 - Server Error.

Internet Information Services (IIS)

============================

则 是没有安装VC9运行库即VISUAL C++ 2008,

Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn

http://download.microsoft.com/download/7/5/0/7502f4e9-1f90-4895-9259-1bde67b8b9a1/vcredist_x86.exe

第三步:在IIS上启用 Gzip压缩

关于Gzip的作用,这里就不再讨论了,大家可以查查资料

1、 启用GZip第一步:右击“网站”,然后单击“属性”,单击“服务”选项卡,选中红框内的两项,然后单击“确定”。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

2、 右击IIS下面的Web服务扩展节点,再单击“添加一个新的Web服务扩展”,如下图

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

添加扩展名为“HTTP Compression”的扩展,注意gzip.dll所在的目录为:C:\windows\system32\inetsrv\gzip.dll

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

在IIS的Web服务扩展里,选中HTTP Compression,然后在左侧单击允许。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

3、设置Gzip参数

设置Gzip需要手工修改C:\windows\system32\inetsrv目 录下的MetaBase.xml文件,MetaBase.xml对于IIS的运行非常重要,若被破坏轻则IIS不能正常运行,重则可导致重装系统,所以修 改这个文件之前一定要做好备份,下图中名为MetaBase_backup.xml的文件就是一个备份。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

下面设置deflate及gzip的具体参数:

设置deflate的压缩参数,其中主要包括文件扩展名,脚 本文件扩展名,压缩比例,需要说明的是,这里压缩比例推荐设置为1,我们稍候讨论哪个压缩比最合适。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

设置gzip的压缩参数,其中主要包括文件扩展名,脚本文件扩展名,压缩比例,需要说明的是,这里压缩比例仍然推荐 设置为1。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

配置完成后,启动IIS,使设置生效

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

4、如果不想停止IIS而直接编辑MetaBase.xml文件,则按下图设置:

在若编辑 MetaBase.xml里不想停止IIS,则在IIS节点上,注意是IIS,不是网站,在IIS上右击,单击“属性”

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

选中“允许直接编辑配置数据库”这一项,可不停止IIS编辑MetaBase.xml文件

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

5、检测Gzip压缩是否启用

如果大家的网站发布在Internet上,可以使用许多在线检测工具,很多站 长网站上都有提供,如何网站是在自己的电脑上试验,要检测Gzip启用情况,需要一些能够抓取HTTP头信息的软件,这里推荐使用 HttpAnalyzer V4,下载这个软件后,则可清晰的看到Gzip的作用。

我们先关闭Gzip,看年没有启用Gzip压缩时的HTTP头 信息截图:

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

可以看到,上图中的 Compression Saving显示为0,我们启用Gzip压缩,再来看一下HTTP头信息情况:

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

上图中可以看到,Content-Encoding显示为gzip,右侧Compression Saving即压缩率显示为73.29%,说明压缩还是很有效的。

用这个软件大家也可以测试一下自己网站的压缩率。

6、有关压缩率的设定

根 据官方的测试数据,200KB 的网页依据不同 gzip 等级的压缩比例为

Gzip level 1 0.593

Gzip level 6 (预设) 0.586

Gzip level 9 0.585

由此 可知,大于 1 以后的压缩效益是很低的,可官方说法,这会消耗服务器资源,因此他们强烈建议设定成 1,gzip 预设是 6。

用某论坛的实际 测试结果如下:

level 9 : 88.7% 压缩比

level 1 : 86.7% 压缩比

用我自己的网站测试数据如下

Level1时的压缩比为62.93%,在Level9时的压缩比为64.30%,可以 看到Level1和Level9基本相差不大。

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

所以我是建议用 1 就好,用 9 对服务器负载会重,人少没感觉,人一多就会服务器负载就重多了,而且设成 1 和 9 压缩比其实差不了多少。

第四 步:安装MySQL5.1

我们这里介绍的是MySQL5.1.48版本。

MySQL的下载地 址在本篇开头已经给出。

关于MySQL安装比较简单,这里只给出截图,不再详述

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

由于ZendOptimizer到现在也没有出用于php5.3的版本,我们也就没法安装了。

官方讨论区说,是因为 php5.3的改动太大,使ZendGard也要发生很大变化,所以ZendOptimizer要等Gard完善后才能出来。

至 此,IIS+FastCGI+PHP5.3+MySQL+Gzip完整配置完成。

本文从开始到写成历经了整两天时间,由于个人水平有限,只能 写这最简单的文章,高手就不用看了,希望对刚入门的新手有所帮助,我也就达到目的了。文中对于理论几乎没有阐述,只是对配置过程进行了最详细的介绍,这样 使新手即使不太明白,照本文也可以配置出一样的环境来,本文章的错误及疏漏之处,还请大家指出来,大家在配置中有何问题,我们一起来探讨解决。


IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程

上一篇:sql之left join、right join、inner join的区别


下一篇:java解决 No enclosing instance of type XXX is accessible的问题