澳门新浦京娱乐游戏提升PHP执行速度全攻略

Php设置难点&加速建议在接受的应用程序进程中一经因php设置错误无法应用,请检查php.ini中如下参数设置.上边均倘诺你的PHP安装在
d:/php/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Error handling and logging ;;
error_reporting is a bit-field. Or each number up to get desired error;
reporting level; E_ALL – All errors and warnings; E_ERROR – fatal
run-time errors; E_WARNING – run-time warnings (non-fatal errors);
E_PARSE – compile-time parse errors; E_NOTICE – run-time notices
(these are warnings which often result; from a bug in your code, but
it’s possible that it was; intentional (e.g., using an uninitialized
variable and; relying on the fact it’s automatically initialized to an;
empty string); E_CORE_ERROR – fatal errors that occur during PHP’s
initial startup; E_CORE_WARNING – warnings (non-fatal errors) that
occur during PHP’s; initial startup; E_COMPILE_ERROR – fatal
compile-time errors; E_COMPILE_WARNING – compile-time warnings
(non-fatal errors); E_USER_ERROR – user-generated error message;
E_USER_WARNING – user-generated warning message; E_USER_NOTICE –
user-generated notice message; Examples:; – Show all errors, except for
notices;error_reporting = E_ALL & ~E_NOTICE; – Show only
errors;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR; –
Show all errors except for noticeserror_reporting = E_ALL &
~E_NOTICE; Print out errors (as a part of the output). For production
web sites,; you’re strongly encouraged to turn this feature off, and use
error logging; instead (see below). Keeping display_errors enabled on a
production web site; may reveal security information to end users, such
as file paths on your Web; server, your database schema or other
information.display_errors = On ; You should do your best to write your
scripts so that they do not require; register_globals to be on; Using
form variables as globals can easily lead; to possible security
problems, if the code is not very well thought of.register_globals =
On; Argument passed to save_handler. In the case of files, this is the
path; where data files are stored. Note: Windows users have to change
this ; variable in order to use PHP’s session
functions.session.save_path =
“c:/winnt/temp”(能够改成你的已存在的目录卡塔尔(قطر‎; cgi.force_redirect is
necessary to provide security running PHP as a CGI under; most web
servers. Left undefined, PHP turns this on by default. You can; turn it
off here AT YOUR OWN RISK; **You CAN safely turn this off for IIS, in
fact, you MUST.**cgi.force_redirect = 0; Directory in which the
loadable extensions (modules) reside.extension_dir = ./extensions/;
也许直接设置成你的相对目录,如:d:/php/extensions/;
GD库,举例图片管理系列就能用到他.; 这几个文件在 d:/php/extensions/
下.extension=php_gd.dllPHP的亮点之一是速度迅猛,对于平时的网址使用,能够说是一度足足了。可是若是站点的访问量极高、带宽窄或然其余的因素令服务器发生品质瓶颈的时候,你大概得讨论别的的不二法门来进一层进步PHP的进程了。那篇文章将从多少个地点介绍怎么样成功那或多或少,进而令顾客浏览的时候特别“爽”。
代码优化 在此边并不想再也告知您
如何写更加深透的代码,这点作者想各种人都知道,在急需速度的时候,你也许早就在PHP源代码的优化方面做了重重的办事,这里所建议的是,这些麻烦的劳作可以交由别的工具来产生。那正是Zend
Optimizer,此程序能够从Zend
Technologies的网址(卡塔尔(قطر‎无需付费得到。它的准绳很简短,通过检验Zend引擎爆发的中间代码,而且优化它来获取越来越高的实行进程。笔者以为优化代码是一项颇繁杂的劳作,而且优化后的代码或许变得难以知晓,极其是当您放下该PHP程序一段时间后,卒然间客商必要您做一些改变时,恐怕您自身也不懂了;-卡塔尔。由此笔者提出您在PHP的源代码较为复杂的时候,用Zend
Optimizer来做这几个优化的劳作,好处是它不会令你的代码变得复杂难懂。
安装Zend
Optimizer是特别轻易的。只要遵照你利用的平台,下载相关的预编写翻译库,何况在你的php.ini中插手两行,重新开动你的web服务器就能够了!
zend_optimizer.optimization_level=15zend_extension=”/path/to/ZendOptimizer.so”
zend_loader.enable=Off
你也可能有一些奇异,不是说两行呢,怎么成为三行了。不过第三行是可选的,看来禁止那个zend_loader将会令优化的快慢更加快,因而不要紧在您的php.ini文件中多加这一行。要潜心的是:唯有在你不使用Zend
Encoder Runtime的时候,才方可防止zend_loader,关于Zend Encoder
Runtime,还会在下文提到。 要越来越快啊?使用cache(缓冲卡塔尔国吧
倘若您的PHP应用还须要更快的速度,下二个办法是缓冲。要完成这或多或少,有二种分裂的方式。小编本人就试用过Zend
Cache(测评版本卡塔尔(قطر‎,APC和Afterburner Cache。
以上关联的都以“缓冲模块”。它们的原理都大概,在php文件被第一遍呼吁的时候,通过将你的PHP源代码的中间代码存款和储蓄在web服务器的内部存款和储蓄器中,对于之后雷同的乞请,都直接提供内部存款和储蓄器中的“编写翻译”版本。由于它能够令磁盘的寻访到达最小化,由此那么些办法确实能够十分的大地提升PHP的性质。更为有援救的是,当你的PHP源代码匡正时,缓冲的模块能够窥见到这么些变迁,何况重新载入同样,因而你不用忧郁顾客取得的是旧版本的顺序。那一个缓冲的模块确实正确,可是自己应该接纳哪种啊?下边分别介绍一下:
Zend Cache是Zend
Technologies的多个商业化的产物(它也是免费为大家提供PHP引擎和Zend
Optimizer的商城卡塔尔(قطر‎。它真的精确。在首次运维后,你可以了然于目发掘到PHP的速度得到了非常的大的增长,服务器的闲暇财富也更多了。瑕疵是您要买下账单购买它,但就性能与价格之间的比例来讲,照旧特别值得的。
Afterburner Cache是Bware
Technologies(bwcache.bware.itState of Qatar提供的免费缓冲模块。当前还只是beta版,它所做的行事看来与Zend
Cache大概,但是品质的增高就未有Zend Cache,并且现成的本子不可能和Zend
Optimizer一同专门的学业,然而它是无偿的。 APC(Alternative PHP
Cache卡塔尔是由Community
Connect(apc.communityconnect.com卡塔尔国提供的另一个免费模块。它的干活很牢固,速度也是有许多的巩固,要注意的是,小编还平昔不找到多少个官方的测量试验数据,这一个只是在本身的应用上作测量试验,因此无法下一个结论.
Web内容的滑坡(令你客商用起来更“爽”)经过上述五个的方式,相信你的PHP应用的性质已经取得了相当大的加强,以后该从另一个上边来虚构了:下载速度。借让你的行使只是在公司内跑,全数的客商都选拔100Mb/s的以太网连接到服务器,那或者不是二个难点,不过要是您的客商中有应用慢速的modem连接的,你将在考虑动用内容减弱这些点子了。
依据IETF的正经八百,大好些个的浏览器都帮忙gzip的内
容压缩。那意味着你在将web的内容发给顾客的浏览器前,能够先选择gzip进行压缩,浏览器在接到的时候就能够自行解压数据,并且令客户观望原本的页面。同样,压缩web页面包车型客车剧情也会有多少个不等的办法。
mod_gzip是Remote
Communications(State of Qatar无偿提供的二个Apache模块,它能够减掉静态的web页面。它专门的学业得很好,你只必要将它和apache一同编写翻译就能够了(也许将它看做贰个DSO使用卡塔尔。Remotecommunications的人说它仍可以够减去动态的剧情,包含mod_php,
mod_perl等。可是小编尝试了弹指间,看来并十一分。小编在mod_gzip的邮件列表中打探到,那么些bug将要下二个版本中校订(小编想应该是1.3.14.6f版本卡塔尔国。可是你还能够用它作静态内容的滑坡。
但是大家还想减削动态的始末,由此大家必须要找其它的格局。叁个方法是行使class.gzip
encode.php(卡塔尔(قطر‎,只要在您的PHP脚本中的初叶和最终调用那些PHP类,就能够减去你的页面内容。如若全部站点都亟需这么的滑坡,你能够在你的php.ini文件中的auto_prepend和auto_append中调用这么些函数。它职业得很好,可是在负载超级重的站点上,它分明会带来一些的系统开荒。要详细询问它是如何专门的学问的,能够看一下它的类代码(你足足须要在编写翻译PHP时参预zlib援救卡塔尔国。小编在中间的印证也相当详尽,你能够赢得其余索要理解的东西。
在新近,作者也见到了一篇有关PHP输出缓冲的随笔。它说的是PHP4.0.4生产了一种新的出口缓冲的拍卖花招–ob_gzhandler,它的职能和上面介绍的类相似,但分裂是你一旦在您的php.ini中接收以下的句法就能够了:
output_handler = ob_gzhandler ;
这样将激活PHP的输出缓冲作用,何况压缩全部它发送的事物。出于有个别非常的原故,如若您不想在这间安装的话,只在必要之处才转移那些暗中同意设置的话(不减少State of Qatar,只要在需求减小的PHP源码目录中,改革一下.htaccess文书就行了,使用的句法如下:
php_value output_handler ob_gzhandler
…或然直接在您的PHP代码中调用它,以上面包车型客车措施:
ob_start(“ob_gzhandler”卡塔尔(قطر‎;
那么些输出缓冲管理的主意很好,并且不会为服务器带给额外的体系开辟。作者非凡提议您选用这种办法。它的改观能够用以下的事例表明,假设顾客利用的是28.8K的modem的话,经过这几个处理,他将会感觉猛然间换到了二个ISDN接入同样。要小心的某个是:Netscape
Communicator并不帮衬图象的减少,所以将显得不出去。因而唯有你的客商任何采纳Internet
Explorer,不然你必得禁绝压缩jpeg和gif图象。此外文件的回退应该没格外,不过自身提议您最棒测验一下,特别是浏览器选拔了不平淡无奇的插件或然是少人用的浏览器。
此外有效的东西… Zend
Technologies的在线公司在当年1月24通达了,况且贩卖一些与PHP相关的有趣产品。包蕴后边提到的Zend
Cache,Zend
Encoder(轻易说来,是PHP代码的编写翻译器,能够生出编写翻译的类,那样你就足以发卖给消费者而不用忧虑泄露源代码。在必要周转那一个类的web服务器上,即将采取Zend
Encoder Runtime来解码State of Qatar,Zend
Ide(一个为PHP而设的集成化开荒条件,带有超多强盛的性质卡塔尔(قطر‎,还有为PHP开拓者提供的支撑服务。
结论
使用那篇文章提到的手艺,你将得以很大地升高站点的属性,不过请留神以下几点:
1.瓶颈恐怕不在PHP,你需求观看应用中的各类对象(举例数据库卡塔尔国2.贰个web服务器的天性皆以有约束的,因而,不要认为质量不好就是PHP的原故,也说不许是访谈量相当大,你的服务器须求进步了,只怕构思选拔负载均衡的体系(将会花好些个钱卡塔尔(قطر‎3.不用感觉内容减少不重要,在100Mb/s的局域网中,你的PHP应用或然品质很好,但要思虑到应用慢速modem的客商。

 PHP的优点之一是速度快捷,对于日常的网址接受,能够说是一度够用了。不过只要站点的访谈量超级高、带宽窄恐怕其余的因素令服务器发生质量瓶颈的时候,你大概得用脑筋想其余的法子来进一层提升PHP的快慢了。那篇随笔将从多少个地方介绍如何成功那点,进而令客商浏览的时候进一层“爽”。

代码优化

  在这里地并不想再也告知您什么写更深透的代码,那点笔者想各样人都精晓,在须求速度的时候,你可能早已在PHP源代码的优化方面做了广大的劳作,这里所提议的是,这几个麻烦的职业能够交由其他工具来成功。这便是Zend
Optimizer,此程序能够从Zend
Technologies的网址(
Optimizer来做这几个优化的工作,好处是它不会令你的代码变得复杂难懂。

  安装Zend
Optimizer是很简单的。只要依照你利用的阳台,下载相关的预编写翻译库,並且在您的php.ini中步向两行,重新起动你的web服务器就能够了!

zend_optimizer.optimization_level=15
zend_extension=”/path/to/ZendOptimizer.so”
zend_loader.enable=Off

  你大概有一点点诡异,不是说两行吧,怎么成为三行了。可是第三行是可选的,看来防止这些zend_loader将会令优化的进度越来越快,因而无妨在您的php.ini文件中多加这一行。要留意的是:独有在您不选用Zend
Encoder Runtime的时候,才足以禁绝zend_loader,关于Zend Encoder
Runtime,还或许会在下文提到。

要越来越快呢?使用cache(缓冲)吧

  若是你的PHP应用还索要更加快的快慢,下七个主意是缓冲。要落实这或多或少,有二种差别的情势。笔者要好就试用过Zend
Cache(评测版本),APC和Afterburner Cache。

  以上关联的都以“缓冲模块”。它们的规律都大致,在php文件被第一遍号召的时候,通过将您的PHP源代码的中间代码存储在web服务器的内部存储器中,对于之后近似的央求,都间接提供内部存储器中的“编写翻译”版本。由于它能够令磁盘的拜见达到最小化,因而那个法子真的能够比很大地提升PHP的习性。更为有助于的是,当您的PHP源代码纠正时,缓冲的模块能够窥见到那些变化,何况重新载入相近,由此你不要驰念顾客得到的是旧版本的次序。那些缓冲的模块确实精确,不过自身应当选拔哪一类呢?下边分别介绍一下:

  Zend Cache是Zend
Technologies的一个商业化的成品(它也是无需付费为大家提供PHP引擎和Zend
Optimizer的营业所)。它实在不易。在第叁回运营后,你能够一览无余发掘到PHP的进度取得了比十分大的进步,服务器的空闲财富也更加多了。短处是您要买单购买它,但就性能和价格的比例来讲,依旧那几个值得的。

  Afterburner Cache是Bware
Technologies(
Cache大概,可是质量的加强就不比Zend Cache,并且现存的本子不可能和Zend
Optimizer一同专业,然则它是免费的。

  APC(Alternative PHP Cache)是由Community
Connect(

Web内容的压缩(让你顾客用起来更“爽”)

  经过以上七个的点子,相信您的PHP应用的品质已经取得了比异常的大的巩固,今后该从另三个上面来设想了:下载速度。若是您的应用只是在厂商内跑,全数的客商都应用100Mb/s的以太网连接到服务器,那大概不是三个主题材料,可是倘诺您的客户中有利用慢速的modem连接的,你就要思索选择内容减弱那些方法了。依照IETF的标准,大多数的浏览器都帮助gzip的从头到尾的经过收缩。那象征你在将web的剧情发给顾客的浏览器前,能够先利用gzip实行裁减,浏览器在收到的时候就能够活动解压数据,何况令客户观察原本的页面。同样,压缩web页面包车型大巴内容也会有多少个分裂的点子。

  mod_gzip是Remote
Communications(,
mod_perl等。不过笔者尝试了弹指间,看来并特别。作者在mod_gzip的邮件列表中询问到,这一个bug就要下三个版本中改良(小编想应该是1.3.14.6f版本)。可是你还能用它作静态内容的削减。

  可是大家还想减削动态的始末,由此大家必得找其它的法子。叁个方法是运用class.gzip
encode.php(

  在近日,作者也看看了一篇有关PHP输出缓冲的稿子。它说的是PHP4.0.4出产了一种新的出口缓冲的管理招式–ob_gzhandler,它的效果和地点介绍的类相符,但不一致是你一旦在你的php.ini中选择以下的句法就能够了:

output_handler = ob_gzhandler ;

  这样将激活PHP的出口缓冲作用,而且压缩全部它发送的事物。出于某个非常的案由,若是您不想在这设置的话,只在供给的地点才转移那些暗许设置的话(不打折扣),只要在急需减小的PHP源码目录中,修改一下.htaccess文件就可以了,使用的句法如下:

php_value output_handler ob_gzhandler

… 大概直接在您的PHP代码中调用它,以下边包车型客车不二秘籍:

ob_start(“ob_gzhandler”);

  那个输出缓冲管理的章程很好,何况不会为服务器带给额外的种类开垦。小编那么些提议你利用这种格局。它的改良能够用以下的例证表明,借使客商使用的是28.8K的modem的话,经过这么些管理,他将会认为忽地间换成了壹个ISDN接入同样。要精心的一些是:Netscape
Communicator并不扶持图象的降少,所以将呈现不出来。因而独有你的客商任何利用Internet
Explorer,不然你一定要禁绝压缩jpeg和gif图象。此外文件的减少应该未有毛病,但是本人建议您最棒测量试验一下,极度是浏览器采纳了不千千万万的插件只怕是少人用的浏览器。

别的有效的东西…

  Zend
Technologies的在线公司在当年三月24通达了,并且发卖一些与PHP相关的风趣产品。包涵前边提到的Zend
Cache,Zend
Encoder(轻松说来,是PHP代码的编写翻译器,能够发生编译的类,那样您就足以贩卖给顾客而不用担忧败露源代码。在要求周转那个类的web服务器上,就要接收Zend
Encoder Runtime来解码),Zend
Ide(二个为PHP而设的集成化开垦情形,带有相当多强有力的特性),还恐怕有为PHP开辟者提供的支撑服务。

结论

  使用那篇小说提到的技艺,你将得以相当的大地提升站点的质量,可是请留神以下几点:

1.瓶颈恐怕不在PHP,你须求观看应用中的种种对象(比如数据库)
2.二个web服务器的属性都以有节制的,因而,不要以为质量不佳正是PHP的原由,也可能是访谈量极大,你的服务器须要进步了,只怕思索接纳负载均衡的体系(将会花非常多钱)
3.不用以为内容减弱不首要,在100Mb/s的局域网中,你的PHP应用大概质量很好,但要考虑到应用慢速modem的客户。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图