本文所用的软件名称及下载地址:
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完整配置完成。