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

来源:互联网 发布:中国数据广告投放 编辑:程序博客网 时间:2024/05/29 03:28

说明:
本帖是我经过一天一夜完成的,不同于一般网上文章,除详细的将整个配置过程和测试过程都详细截图说明外,尤其在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://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.1/mysql-essential-5.1.48-win32.msi

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。



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



2、打开php-5.3.2-nts-Win32-VC9-x86,建立php.ini文件
复制一个新的php.ini-development文件,并将文件名改为phi.ini。
如下图



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



修改data.timezone的值



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



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



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



至此,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
打开该网址单击下面红框内的按钮,进入下一步。



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




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



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




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



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



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



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



稍候即完成安装!



最后,单击退出并关闭IE



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

  

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



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



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



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



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



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

[Types]
php = PHP
[PHP]
ExePath=C:/php-5.3.2-nts-Win32-VC9-x86/php-cgi.exe



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



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



我们看到以下信息
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第一步:右击“网站”,然后单击“属性”,单击“服务”选项卡,选中红框内的两项,然后单击“确定”。



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



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



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



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



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



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



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



4、如果不想停止IIS而直接编辑MetaBase.xml文件,则按下图设置:
在若编辑MetaBase.xml里不想停止IIS,则在IIS节点上,注意是IIS,不是网站,在IIS上右击,单击“属性”



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



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



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



上图中可以看到,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基本相差不大。


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

第四步:安装MySQL5.1
我们这里介绍的是MySQL5.1.48版本。
MySQL的下载地址在本篇开头已经给出。
关于MySQL安装比较简单,这里只给出截图,不再详述






















由于ZendOptimizer到现在也没有出用于php5.3的版本,我们也就没法安装了。
官方讨论区说,是因为php5.3的改动太大,使ZendGard也要发生很大变化,所以ZendOptimizer要等Gard完善后才能出来。

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

本文从开始到写成历经了整两天时间,由于个人水平有限,只能写这最简单的文章,高手就不用看了,希望对刚入门的新手有所帮助,我也就达到目的了。文中对于理论几乎没有阐述,只是对配置过程进行了最详细的介绍,这样使新手即使不太明白,照本文也可以配置出一样的环境来,本文章的错误及疏漏之处,还请大家指出来,大家在配置中有何问题,我们一起来探讨解决。
现在已经是凌晨5点了,又一个不眠之夜,不过我相信还有很多像我这样的朋友,因为今天凌晨是2010南非世界杯决赛!西班牙VS荷兰,可惜我没能好好看。

欢迎访问我的网站:
惟一女孩:
www.vegirl.com
Java专题站:www.jsfcn.com
新钛下载站:www.ntdown.com
我的邮箱:javalet@163.com
Javalet完成于
2010年7月12日5点

=================
本帖地址:
http://vegirl.com/forum.php?mod=viewthread&tid=457&extra=page%3D1

本文Word文档下载地址:
http://vegirl.com/siteres/ifpmg/fastcgiphpgzip.rar