侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

php  /  管理员 发布于 7年前   135

说明:

本帖是我经过一天一夜完成的,不同于一般网上文章,除详细的将整个配置过程和 测试过程都详细截图说明外,尤其在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。

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完整配置完成。

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

本文Word文档下载地址: ///books/55160.html


  • 上一条:
    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置
    下一条:
    phpmyadmin 4+ 访问慢的解决方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客