IIS+FastCGI+PHP53+MySQL51+Gzip详细教程.docx
《IIS+FastCGI+PHP53+MySQL51+Gzip详细教程.docx》由会员分享,可在线阅读,更多相关《IIS+FastCGI+PHP53+MySQL51+Gzip详细教程.docx(42页珍藏版)》请在冰豆网上搜索。
![IIS+FastCGI+PHP53+MySQL51+Gzip详细教程.docx](https://file1.bdocx.com/fileroot1/2022-12/12/9e8570e9-1769-46a5-b72a-2077180bf519/9e8570e9-1769-46a5-b72a-2077180bf5191.gif)
IIS+FastCGI+PHP53+MySQL51+Gzip详细教程
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
地址:
MySQL:
mysql-essential-5.1.48-win32.msi
地址:
FastCGI:
这个有两种配置方法,正文中详细介绍
phpMyAdmin:
本文用的是3.3.4版
ZendOptimizer:
目前的ZendOptimizer还不支持PHP5.3.2,等出新版后我们再装。
前言:
PHP5.3的版本选择
现在的PHP5.3ForWindows一共给了四个版本:
VC9x86NonThreadSafe、VC9x86ThreadSafe、VC6x86NonThreadSafe、VC6x86ThreadSafe,参考PHP官网提供下载的地方左边的英文来看看这几个版本有什么区别。
一、如何选择PHP5.3的VC9版本和VC6版本
VC6版本是使用VisualStudio6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。
VC9版本是使用VisualStudio2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。
二、如何选择PHP5.3的ThreadSafe和NonThreadSafe版本
先从字面意思上理解,ThreadSafe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。
NonThreadSafe是非线程安全,在执行时不进行线程(Thread)安全检查。
再来看PHP的两种执行方式:
ISAPI和FastCGI。
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择ThreadSafe版本;
而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择NonThreadSafe版本。
我们使用IIS+FastCGI方式配置服务器环境,所以使用NonThreadSafe版本。
了解了如何选择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.phponline910”错误。
至此,php部分配置完毕。
下面我们来在IIS里添加对php的支持,当然,我们采用的FastCGI方式。
第二步:
配置IIS的FastCGI模块
为IIS增加FastCGI模块有两种方式,一种是直接下载FastCGIExtension文件,另一种是使用微软的“web平台安装程序”,在这里我们介绍后者。
第一种方式中FastCGIExtension文件的名称和下载地址为:
文件名:
FastCGIExtension1.5forIIS6.0andIIS5.1-RC(x86)
地址:
该安装程序需要.net2.0支持,请确认已经安装.netFramework2.0。
下面我们来介绍使用微软的“web平台安装程序”来配置FastCGI。
1、FastCGI第一步:
打开微软的“web平台安装程序”,网址是:
打开该网址单击下面红框内的按钮,进入下一步。
在弹出的对话框里,单击运行。
弹出安全警告对话框,再次单击运行。
接下来是下载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方式配置成功!
注意,如果出现以下错误信息
============================
ErrorDetails:
ErrorNumber:
14001(0x800736b1)。
ErrorDescription:
由于应用程序配置不正确,应用程序未能启动。
重新安装应用程序可能会纠正这个问题。
HTTPError500-ServerError.
InternetInformationServices(IIS)
============================
则是没有安装VC9运行库即VISUALC++2008,
MicrosoftVisualC++2008RedistributablePackage(x86)下载地址:
第三步:
在IIS上启用Gzip压缩
关于Gzip的作用,这里就不再讨论了,大家可以查查资料
1、启用GZip第一步:
右击“网站”,然后单击“属性”,单击“服务”选项卡,选中红框内的两项,然后单击“确定”。
2、右击IIS下面的Web服务扩展节点,再单击“添加一个新的Web服务扩展”,如下图
添加扩展名为“HTTPCompression”的扩展,注意gzip.dll所在的目录为:
C:
\windows\system32\inetsrv\gzip.dll
在IIS的Web服务扩展里,选中HTTPCompression,然后在左侧单击允许。
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头信息的软件,这里推荐使用HttpAnalyzerV4,下载这个软件后,则可清晰的看到Gzip的作用。
我们先关闭Gzip,看年没有启用Gzip压缩时的HTTP头信息截图:
可以看到,上图中的CompressionSaving显示为0,我们启用Gzip压缩,再来看一下HTTP头信息情况:
上图中可以看到,Content-Encoding显示为gzip,右侧CompressionSaving即压缩率显示为73.29%,说明压缩还是很有效的。
用这个软件大家也可以测试一下自己网站的压缩率。
6、有关压缩率的设定
根据官方的测试数据,200KB的网页依据不同gzip等级的压缩比例为
Gziplevel10.593
Gziplevel6(预设)0.586
Gziplevel90.585
由此可知,大于1以后的压缩效益是很低的,可官方说法,这会消耗服务器资源,因此他们强烈建议设定成1,gzip预设是6。
用某论坛的实际测试结果如下:
level9:
88.7%压缩比
level1:
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荷兰,可惜我没能好好看。
欢迎访问我的网站:
惟一女孩:
Java专题站:
新钛下载站:
我的邮箱:
javalet@
Javalet完成于
2010年7月12日5点
=================
本文Word文档下载地址: