仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1459|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP网站提速三大“软”招

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。   跟着收集的普及,网站已浸透到了每一个行业,然而因为今朝专线费用让良多企业和团体难以接受,所以同享带宽成为良多网站的首选计划。费用固然下降了然而一个新的成绩很快就呈现了,那就是同享带宽的网速很慢,有时乃至让人没法忍耐。若何能让本人的网站快起来,成为人们关怀的成绩,笔者联合亲自理论来说讲软举措的一些实践使用,但愿可以对读者有所匡助。

  笔者采取的是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就不可,由于它不克不及把吸收到的紧缩页面解紧缩,招致页面不克不及正常显示。  一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!
深爱那片海 该用户已被删除
沙发
 楼主| 发表于 2015-2-4 12:00:04 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
分手快乐 该用户已被删除
板凳
发表于 2015-2-9 22:30:37 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
柔情似水 该用户已被删除
地板
发表于 2015-2-28 02:11:28 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
精灵巫婆 该用户已被删除
5#
发表于 2015-3-6 12:41:22 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
爱飞 该用户已被删除
6#
发表于 2015-3-11 02:18:33 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-17 18:56:16 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
海妖 该用户已被删除
8#
发表于 2015-3-19 23:35:37 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
再见西城 该用户已被删除
9#
发表于 2015-3-22 04:09:30 | 只看该作者
实践是检验自己会不会的真理。
莫相离 该用户已被删除
10#
发表于 2015-3-31 00:57:43 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
金色的骷髅 该用户已被删除
11#
发表于 2015-4-12 18:03:44 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
admin 该用户已被删除
12#
发表于 2015-4-16 22:12:50 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
简单生活 该用户已被删除
13#
发表于 2015-4-30 14:59:51 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
谁可相欹 该用户已被删除
14#
发表于 2015-5-1 10:10:33 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
乐观 该用户已被删除
15#
发表于 2015-5-6 04:12:20 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
因胸联盟 该用户已被删除
16#
发表于 2015-5-6 13:09:48 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
飘飘悠悠 该用户已被删除
17#
发表于 2015-6-7 22:16:02 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
蒙在股里 该用户已被删除
18#
发表于 2015-6-21 12:42:35 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
第二个灵魂 该用户已被删除
19#
发表于 2015-6-27 06:16:01 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
变相怪杰 该用户已被删除
20#
发表于 2015-7-12 00:11:28 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 07:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表