PHP网站提速三大“软”招

随着网络的普及,网站已经渗透到了每个行业,但是由于目前专线费用让很多企业和个人难以承受,所以共享带宽成为很多网站的首选方案。费用虽然降低了但是一个新的问题很快就出现了,那就是共享带宽的网速很慢,有时甚至让人无法忍受。如何能让自己的网站快起来,成为人们关心的问题,笔者结合亲身实践来讲讲软办法的一些实际应用,希望能够对读者有所帮助。

  笔者采用的是Linux操作系统,Apache+PHP的网站构建方法。

代码优化

  通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工具能够完成这项功能,对于一般的html文件,用于减少冗余的减肥工具很多,而对于PHP程序来说这样的工具就不太多了,但是Zend Technologies的Zend Optimizer是一款非常好的代码优化工具,可以免费从Zend Technologies的网站上获得。Zend Optimizer的使用方法也非常简单,只要将下载的ZendOptimizer-1[1].0.0-PHP_4.0.4- Linux_glibc21-i386.tar.gz文件解压缩,将其中的ZendOptimizer.so文件拷贝到/usr/local/Zend/lib目录下,然后修改php.ini文件,在最后添加以下几行:

  显示说明Zend Optimizer工作正常
  zend_optimizer.optimization_level=15
  zend_extension="/usr/local/ Zend/lib/ ZendOptimizer.so"

  设置完成后重启Apache服务器,编写一段PHP程序:

  <?
  Phpinfo();

  ?>

  一般来说Zend Optimizer能将系统的效率提升30%~40%,这是用户最关心的。

压缩页面

  HTTP1.1协议支持页面压缩传送,也就是说服务器把一个页面压缩传送到客户端,然后在客户端将页面解压缩再显示给客户。在服务器端有两种传输方式,一种是页面事先已经压缩好了,传送时只要将压缩页面传送到客户端就行,这种适用于静态网页多的情况,但是对于大多数站点,动态页面比较多,这种方法不太适合,因为很多传到客户端的页面其实是没有的,是服务器接到客户端用户请求动态产生的,所以就要求每生成一个动态页面都要在传到客户端以前先打包压缩。从PHP的4.0.4版以后,可以在php.ini文件中增加一行配置“output_handler = ob_gzhandler”,这样每个动态生成的页面在传送到客户端之前都会进行压缩,但是根据PHP官方站点的说明,这个参数不能与“zlib.output_compression = on”参数同时使用,因为容易引起PHP工作不正常,另外它只能压缩PHP程序的动态生成的页面,对于大量的静态页面尤其是图像文件就不行了。但是mod_gzip模块为Apahe提供了将静态页面在传给客户端以前先压缩的功能,它的压缩比最大能到10,一般情况下可以到 3,也就是说网站的传输速率一下提高了三倍多。要想使用mod_gzip功能首先要下载mod_gzip.c或mod_gzip.so文件,如果下载的是.c文件还要用Apache带的工具将它转化为.so文件才能使用,方法是运行下面的命令:

  -i -a mod_gzio.c
 cp mod_foo.so/path/to/apache/libexec/mod_gzip.so
 chmod 755/path/to/apache/libexec/mod_foo.so

  系统会在/path/to/apache/ etc/httpd.conf中自动激活该模块,如果下载的是.so文件则要将该文件拷贝到相应的目录下,然后在httpd.conf文件中添加LoadModule gzip_module libexec/ mod_gzip.so,使模块生效。需要注意两点,第一,要想使用.so文件,Apache必须包含了mod_so模块(可以通过httpd -l命令来查询该模块是否生效);第二,如果下载的是.so文件,它是与Apache的版本有关的,要注意下载的版本与自己使用的Apache是否一致,如果是.c文件就没有这个问题。模块生效后还要对Apache进行相应的配置,需要在httpd.conf文件中加入一些参数:

  mod_gzip_on Yes(模块是否生效)
  mod_gzip_minimum_file_size 1002(最小压缩文件大小)
  mod_gzip_maximum_file_size 0(最大压缩文件大小,0表示没有限制)
  mod_gzip_maximum_inmem_size 60000(最大可占用内存)
  mod_gzip_item_include file "..gif102SINA>DOUBLE_QUOTATION (以gif结尾的文件要压缩传送)
  mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION
  mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION
  mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION

  使用了压缩模块后,当用户访问站点时会在日志文件中记录相应的信息,比如“mod_gzip :OK In:file_length Out:gzipfile_length”,表示该页面传输中使用了gzip功能,输入文件、输出文件大小都有说明。

 文件缓存

  这种方法通常是针对PHP、PERL等CGI程序而言的,因为这些程序有一个共同的特征就是接到用户的请求后不是马上将结果返回给用户,而是经过解释器解释执行后将执行结果返回给客户,这期间通常都要涉及到数据库的访问。这样就会出现一个问题,当两个用户访问同一个页面时,系统将分别对两个请求进行操作,但事实上这两个操作可能是一模一样的,这样无形当中增加了系统的负担。所以通常的解决办法是在系统内存中开辟出一段空间,当用户第一次访问页面后将执行结果存放在该内存中,当有用户再一次访问该页面时,系统就将页面直接从内存中调出而不需要重新解释执行,这段内存空间就叫缓存。目前流行的缓存管理程序有两个,一个是FastCGI,另一个是Zend Technologies公司的Zend Cache。FastCGI主要是针对Perl、C、C++等CGI脚本程序设计的,可以有效地利用内存作缓存,来自客户端的请求都会被传送到FastCGI应用服务程序,FastCGI处理用户的请求后将结果返回给用户。一般的CGI程序这时将结束进程自动退出,但是FastCGI进程继续保持,这时它在接到新的用户请求后不必建立新的进程,可以立即处理用户请求,也就是说CGI程序建立进程顺序执行然后退出,而FastCGI程序顺序执行并永远循环。

Zend Cache的管理界面

  要想使用FastCGI首先要把FastCGI编译到Apache中,方法非常简单,这里就不说明了,还要在http.conf文件里作设置:

  AddHandler fastcgi-script .fcg .fcgi .fpl
  Options ExecCGI Indexes Includes

  这样FastCGI就可以正常工作了,下面是FastCGI程序员手册中的一段例子程序:

 
  use FCGI;
   = 0;

  while (FCGI::accept >= 0) {
  print "Content-type:text/html ";
  print "<head><title>FastCGI Demo Page (perl)</title></head> ";
  print "<h1>FastCGI Demo Page (perl)</h1> ";
  print "This is coming from a FastCGI server. <BR> ";
  print "Running on <EM>publish152.internal.sina.com.cn</EM> to <EM></EM><BR> ";
  ++;
  print "This is connection number ";
  }

  FastCGI对Perl等CGI程序的功能非常强大,但是它对PHP程序确是无能为力的,而且需要在编程时增加内容,也就是说它需要一些人为的因素才能发挥作用。相比之下Zend Technologies公司的Zend Cache针对PHP的缓存功能是很强大的,只要安装了该软件,程序员就像编写其他PHP程序一样,不需要增加代码,就可以实现缓存功能,有利于系统升级,十分方便。它是一个付费软件。它有缓存功能并能通过图形界面对其进行管理,其中:Cache Control页面,可以配置Zend Cache,显示其当前状态,还能启动和停止Zend Cache功能;Scripts页面,Zend Cache的内容,包括每个文件的状态,还可以根据点击次数和缓存占有大小选择文件;Benchmark页面,可以测试Zend Cache的缓存效果,并以图形方式给出显示,它测试的是每秒钟完成PHP请求的次数。

  它的安装、验证方法与Zend Optimizer基本相同,这里就不详细说明了,感兴趣的读者可以参考用户手册,它的强大功能和便利的管理方法确实让人心动。

  以上是网站提速常见的几种方法,对于不同的网站需要采用不同的手段,所对应的提速方案也不尽相同,但总体上不外乎是以上提到的三招,读者可以根据自己的实际情况具体问题具体分析。

  注意:考虑到客户端软件的复杂性,因为有些客户端软件可能不支持某些特性,比如,mod_gzip对页面进行压缩,但是如果客户端使用的是Netscape就不行,因为它不能把接收到的压缩页面解压缩,导致页面不能正常显示。

时间: 2024-10-29 22:34:59

PHP网站提速三大“软”招的相关文章

PHP网站提速三大“软”招_php基础

文/李鲲程 随着网络的普及,网站已经渗透到了每个行业,但是由于目前专线费用让很多企业和个人难以承受,所以共享带宽成为很多网站的首选方案.费用虽然降低了但是一个新的问题很快就出现了,那就是共享带宽的网速很慢,有时甚至让人无法忍受.如何能让自己的网站快起来,成为人们关心的问题,笔者结合亲身实践来讲讲软办法的一些实际应用,希望能够对读者有所帮助.    笔者采用的是Linux操作系统,Apache+PHP的网站构建方法. 代码优化 通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工

PHP网站提速三大软招

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   代码优化 通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工具能够完成这项功能,对于一般的html文件,用于减少冗余的减肥工具很多,而对于PHP程序来说这样的工具就不太多了,但是Zend Technologies的Zend Optimizer是一款非常好的代码优化工具,可以免费从Zend Techn

网站推广之软文写作的三大要素

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 一.标题.内容要低俗 对于做娱乐站.或地方站.或交友社区等类型的网站,写软文时一定要突出低俗的特点,使用低俗的方式不仅是对娱乐类内容站有意义,即使是专业的网站也能引起人的关注,当然,专业站不建议用这种低俗的模式,以免引起用户的反感. 低俗软件文的典型成功案例: 1.天涯社区(什么木子美之类); 2.博客中国(虽然目前由于经营原因失败了,但不可

个人网站的三大危机在哪里?

前一段有空看了一下时代光华里面余世维老师讲的成功经理人课程的录相,看完之后感想非常的深刻,当然这里并不作为一个话题来讨论,因为诸位想必对管理学感兴趣者寥寥.余老师这门课程里有讲到IBM的很多内容,其中印象比较深刻的是讲到IBM的三大危机,这里作一引伸和归纳,其实我们做网站跟做企业有很地方是相同的. 那么,我们来看看,我们个人网站的三大危机在哪里. 首先有必要介绍一下自己,鄙人就职于某国有企业信息部门,长期从事信息化管理工作,有三年网站建设经验,当然与各位相比,差之千里.今天斗胆发这样一篇帖子,其

Google中文搜索的三大软肋

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在全球搜索引擎市场上,Google以绝对优势压倒200多个竞争对手,稳居第一.早在2003年底,Google就占据了全球搜索市场56.1%的份额,超过Yahoo的21.5%.虽然雅虎是搜索的鼻祖,但Google借力于雅虎后来居上,一提搜索,人们首先想到的就是Google. 在中文搜索市场上,Google也曾一度领先,但是,随着竞争对手的日渐强大,Google中文搜索已经风光不再,加之国内市场开拓乏力,与其英文搜索市场老大的身份相比,Google中文

《白手起家,推广网站二十四招》

中介交易 SEO诊断 淘宝客 云主机 技术大厅 <白手起家,推广网站二十四招> --一穷二白三推广,没钱也要推网站 01.千言万语第一句话:先把网站的内容做好! --不过,这里千万要强调一点:不要迷信"原创",切忌不顾一切原创内容,我们要做的是把内容整合好,就像一个好厨师用好手艺做好菜,而不是自己去喂猪.我们要做的就是内容整合,形成具有足够吸引力的鲜明主题.事实上,这就足够了! 02.网站标题栏(Title)的内容优化: --先写好一个简要地介绍,不超过30字,然后将其改编

浅谈网站优化三大策略

现在做百度优化是越来越不容易了.由于一些黑帽和链接买卖的盛行,最近的搜索引擎更新算法是越来越频繁了,如此更新之下许多网站都受到了不同程度的降权和减少收录.今天小李子和大家分享网站优化三大策略! 策略一:注重内容质量 现在百度对内容质量的要求已经非常的高了,一些伪原创的网站都很难获得较高的排名.而一些内容原创度高的新战却很受百度的亲昧而获得了首页较靠前的排名.这也许是百度想真正大大清理一番内容的时候了吧.所以建议大家做网站优化时尽量保持内容原创度.即使是伪原创,也要做到60%-80%的伪原创. 策

网站的三大标签的问题

做搜索引擎优化的话,都应该知道网站的三大标签title.keywords.description,这样的三个标签虽然的话在网站的页面表现不出来,但是如果设计得不合理的话,可能对网站产生比较严重的后果.而在对一些有问题的网站进行诊断的时候,也比较习惯的先是了解一些主要页面的title.keywords.description各自的设置是否合理.所以的话在做网站建设之前处理好这三个标签是比较的重要的. 先来说一下首当其冲的title,title的位置已经是越来越重要了.一般来说对于title设置的要

seo优化网站站内软文编辑技巧分享

我想只要了解seo的不管是站长级的还是菜鸟级的,或多或少的都知道软文在站内seo中的比重是越来越重要了,据数据统计显示,目前一篇高质量的软文在网站的比重已超过了60%以上,由此看来高质量软文在seo优化网站中的地位已经是不容忽视的了.那么什么样的软文才能称得上是高质量的?高质量的软文的基本定义是什么?我认为与主题相关的.原创度高的,具有可读性和实用性的文章才能称的上是高质量的软文.那么高质量的站内软文究竟如何编辑?今天小编我就来给seo新手们分享几点,关于seo优化网站站内软文的编辑方法,好帮助