开发者社区> 问答> 正文

windows 2008 IIS升级PHP5.3后执行PHP慢的解决办法

     这段时间网上都在说PHP5.2系列版本不安全,于是乎我更新到PHP5.3系列版本,更新以后发现用IIS 7.5运行PHP速度非常慢,等待响应时间长达1秒钟,似乎是内存不足的征兆;不过,仔细查看内存使用情况,发现内存还有很多;而且,我还是采用FastCgi方式运行PHP的,虽然速度比不过Linux下面运行PHP,至少不会慢成这模样。
    在网上搜索“IIS 7.5 PHP5.3速度慢”相关字眼,发现不少网友都有自己的经历,不仅仅是IIS 7.5,IIS 7同样有这样的问题,都是升级PHP到5.3系列版本后出现问题,出现问题的程序包括DEDECMS、PHPCMS、 Discuz!等,反正这些程序的最新版本都是支持PHP5.3的,只是却出现响应时间过多的情况,让我折腾了好几天,终于弄明白缘由。
    windows 2008升级PHP5.3后变慢原因
    上面说到的程序有共同的特点,那么便是要用到数据库,很多PHP页面实际上都是数据库驱动的,要连接数据库才能显示出来,而响应时间过长的原因便在于PHP 5.3连接数据库的方式有所改变。目前我们配置数据库信息时都类似这样的“$dbhost=‘localhost’ ”;这本身是没有问题的,只是PHP 5.3会考虑是IPv4还是IPv6,面对localhost会犹豫,因此出现响应时间过长的情况。如果你查看过服务器处理PHP的时间,你会发现处理PHP的时间很短,等待处理前的时间很长。
    目前这种响应时间过长的情况只出现在IIS 7及IIS 7.5升级PHP 5.3系列版本后,至于数据库版本是多少没多大影响。简单普及一下知识,windows 2008分为32位和64位,自带IIS 7,windows 2008 R2自带IIS 7.5,R2版本的系统只有64位。如果你用的IIS 6或者Linux系统什么的,目前还没存在这样的问题,主要是windows 2008系统。
    恢复FastCgi高效运行PHP的简单方法
    下面的几个方法实际上不是我自己琢磨出来的,而是在网上找到的答案,经过测试有效;另外,这些答案在IIS官网有相应的回复,回复的时间是2010年末,说明这样的问题很早之前便出来,不过解决的方法确实很简单。
    方法一:上面已经说到,这是因为PHP 5.3在面对数据库配置信息中的“localhost”会犹豫,因此直接把这个地址改名为“127.0.0.1”,这个IP是IPv4下面的本地网络地址,实际作用和“localhost”一样,不过能明确告诉PHP这是IPv4网络。至于具体的修改流程,好比我的网站 http://www.121h.com/源程序是dedecms,因此数据库配置信息在html/data/common.inc文件中,要用Dreamweaver之类的专业软件编辑修改,否则保存后可能出错。
    至于别的程序,同样修改数据库配置文件即可,下面是一般的数据库配置文件信息。
    <?php
   //数据库连接信息
   $cfg_dbhost = 'localhost';修改此处的localhost为127.0.0.1
   $cfg_dbname = 'fewfwefsdf';
   $cfg_dbuser = 'fsdfsdf';
   $cfg_dbpwd = 'fewffdsf';
   $cfg_db_language = 'UTF-8'
    ?>
    方法二:IIS 7及IIS 7.5是默认开启IPv6组件的,现在不少国内大厂商同样在部署IPv6;如果你的服务器用不上IPv6网络,那么直接把IPv6禁用即可,打开“%systemroot%\System32\drivers\etc\hosts”这个文件,注释掉“::1  localhost”即可。
    方法三:直接把PHP版本降级即可,保持在PHP 5.2.17版本,这是目前用得最多的版本,几乎所有的PHP网站程序都可以运行在这个版本上。经测试,在PHP 5.2系列版本,IIS 7和IIS 7.5均能保证高效运行PHP网站程序。
    其实,解决方法是很简单的,只要一步即可完成,只是个中缘由,估计在你没看到网友及IIS官网的解决方法之前,你同样会各种纠结各种埋怨IIS的。不管是IIS 7,还是IIS 7.5,在运行PHP方面速度都有很大的提升,不用什么问题都怪罪到IIS上,很多时候,只是我们对IIS的认识还不够。本文由121好资讯( http://www.121h.com/ )提供,转载分享请注明!

展开
收起
ap2836i0b 2012-08-24 17:43:24 11267 0
4 条回答
写回答
取消 提交回答
  • Rewindows2008IIS升级PHP5.3后执行PHP慢的解决办法
    其实php版本问题不大,大部分安全问题都是CMS引起的
    2012-08-24 20:07:15
    赞同 展开评论 打赏
  • 从来不用这些,自己的程序用起来才是最爽的
    2012-08-24 19:57:50
    赞同 展开评论 打赏
  • 用得多的系统,自然了解的人和别有用心的人就会多一点。
    2012-08-24 19:39:09
    赞同 展开评论 打赏
  • 文章不错,其实php版本问题不大,大部分安全问题都是CMS引起的。尤其是DedeCMS,我在bluehost一个测试站点使用了DedeCMS5.6,被停机了,说我的CMS很容易被攻陷,影响其他用户,要求我升级到最新版本,同时也不建议我使用dede。
    2012-08-24 18:29:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载