ZendCache使你的站点飞起来
2006-05-10 16:19:13 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

薛启康(xqk@163.net)
商业应用的网站,其传输效率是十分重要的,通常在一些电子商务的站点上,服务器的反应速度决定了其服务质量,服务器的负载决定了它的最大可提供客户的访问容量。技术人员总是想方设法地尽可能地提高服务器的响应速度。而ZendCache也正是为了提高服务器的响应速度而开发的一个优秀产品。有数据证明,使用ZendCache可以将服务器的响应速度提高到原来的300%以上。
一、ZendCache是什么
先看一下php是如何运行的,一个请求php脚本发到服务器后,服务器从磁盘上查找相应的文件,先编译脚本,然后执行之,最后将结果送出。所花时间由查找文件+打开文件+读文件+编译文件几部分组成。ZendCache是一个php脚本高速Cache,它可以将刚执行的php脚本文件的编译结果存放在Web服务器的内存中,如果下一次有人再请求此页,它就可以很快将其送出。免去了每次用户请求php文件,服务器都编译一次脚本所花的时间。同时,免取了从磁盘上查找、读取php文件所花的时间。所以可以大大提高服务器的相应速度。
目前ZendCache只能运行在linux (glibc 2.1)、Solaris 2.6以上、FreeBSD 3.4及4.0。很可惜,目前它沿不支持Windows系统。
二、安装及使用ZendCache
在zend.com上注册一个用户,以此用户登录zend.com,然后到以下地址下载http://www.zend.com/store/PRoducts/zend-cache.php。由于zendCache是一个要会费的软件,我们这里只能下载一个可供使用30天的一个限制日期的试用版,不过,它是一个全功能的软件包。试试看,你可以体验到它强大的功能。要下载其试用版,直接选择“Test drive available”下载。
整个下载要分三步,第一步,下载ZendCache软件包,直接从“Supported Platforms”中选择相应平台的软件包即可。注意软件适用的平台及相应php的版本、类库的类型。
第二步是 “Request Product License”,即从zend.com取得授权,要求用户提供自己机器的Host ID,也即计算机上网卡的MAC地址,zend.com提供了一个读取主机网卡地址的工具,用户可以从zend.com是下载一个叫lmutil.Z的小程序,解压缩后,执行它,即可获得计算机的网卡地址。执行方法:
# ./lmutil lmhostid
即可获得主机ID。另外,用户也可以从/var/log/messages中找到网卡的MAC地址。
此将此ID号填入申请license的form中,选择“request”,然后耐心等待,Zend.com会在48小时内给你发邮件,通知你可以去下载自己的license了。收到邮件后,直接进入http://www.zend.com/store/pickup.php去下载。License是一个名为zend_cache.dat的文件.
安装(本文以linux环境下的安装为例)
解压缩ZendCache-1[1].0.0-PHP_4.0.4-Linux_glibc2.1-i386.tar.gz文件
# tar –zxvf ZendCache-1[1].0.0-PHP_4.0.4-Linux_glibc2.1-i386.tar.gz
# cd ZendCache-1[1].0.0-PHP_4.0.4-Linux_glibc2.1-i386
# cp *.so /usr/local/Zend/lib
然后,将zend_cache.dat复制到/usr/local/Zend目录下。
接着编辑php.ini文件,加入以下几行:
; Start of sample Zend Cache configuration section
zend_cache.use_cwd=1
zend_cache.memory_consumption=64 ; 64MB
zend_cache.validate_timestamps=1
zend_extension=/usr/local/lib/ZendCache.so
; End of sample Zend Cache configuration section
重新启动apache 服务器。使刚才的改动生效。
在Web服务器的htdocs目录下编辑一个简单的php文件test.php,内容如下:
<?
Phpinfo();
?>
然后,在浏览器上键入http://localhost/test.php
如果屏幕上的第二部分出现了
This program makes use of the Zend scripting language engine:
Zend Engine v1.x.x, Copyright (c) 1998-2000 Zend Technologies
with Zend Cache v1.x.x, Copyright (c) 1999-2000, by Zend Technologies
字样,表示ZendCache已经正常工作了。剩下的是看看它的Cache命中效果了。
三、测试ZendCache的命中率
随同ZendCache软件包解开的还有一部分php代码,这可以将ZendCache的命中效果直观地显示出来。简单地将cache_gui这个子目录复制到Web服务器的htdocs目录下。在浏览器url栏中键入http://localhost/cach_gui/index.html即可看到Cache的命中效果。如下图所示,为笔者安装zendCache后的命中效果图:
如果浏览器中的图形无显示,且提示你编译的PHP中的GD模块不支持png图形的显示,那么你还得再次编译php,使GD模块支持png图形显示。有关如何编译PHP,使它支持png的文章可以在网上查找,本文不作记述。如果你不知道自己PHP是否支持png,可以使用phpinfo()函数查看。一般情况下,如果在编译时没有特别指出要支持png,编译时GD就不会默认支持png。
注意:如果你同时使用了ZendOptimizer,那么,应该将以上几行放置在ZendOptimizer之后,否则你的Apache server起不来。
更多精彩
赞助商链接