欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

ZendCache:让网站飞起来

程序员文章站 2022-05-16 23:02:21
...

对商业网站来说,效率是十分重要的。在一些电子商务的站点上,服务器的响应速度决定了其服务质量,而服务器的负载又决定了它可提供的最大访问容量。技术人员总是想尽办法提高服务器的响应速度。

  ZendCache——就是一个提高服务器的响应速度的一个优秀产品。有数据证明,使用ZendCache可以将服务器的响应速度提高到原来的300%以上。

  ZendCache是什么

  先看一下PHP是如何运行的,一个请求PHP脚本发到服务器后,服务器从磁盘上查找相应的文件,先编译脚本,然后执行它,最后将结果送出。所花时间由:查找文件+打开文件+读文件+编译文件几部分组成。ZendCache是一个PHP脚本高速Cache,它可以将刚执行的PHP脚本文件的编译结果存放在Web服务器的内存中,如果下一次有人再请求此页,它就可以很快将其送出。免去了每次用户请求PHP文件,服务器都编译一次脚本所花的时间。同时,免取了从磁盘上查找、读取PHP文件所花的时间。所以,它可以大大提高服务器的响应速度。

  目前ZendCache只能运行在Linux (glibc 2.1)Solaris 2.6以上、FreeBSD 3.44.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

  另外,用户也可以从/var/log/messages中查到网卡的MAC地址。

  将此ID号填入申请licenseForm中,选择“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();

  ?>

  最后,在浏览器上键入:localhost/test.php,如果屏幕上的第二部分出现了如下内容,则表示ZendCache已经正常工作了。剩下的就是看Cache的命中效果了。

  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的命中率

  随同ZendCache软件包解开的还有一部分PHP代码,在浏览器中调用它们可以将ZendCache的命中效果直观地显示出来。简单地将cache_gui这个子目录复制到Web服务器的htdocs目录下。在浏览器URL栏中键入http://localhost/cach_gui/index.html即可看到Cache的命中效果(如附图所示)

  如果浏览器中的图形无显示,且提示你编译的PHP中的GD模块不支持png图形的显示,那么你还得再次编译PHP,使GD模块支持png图形显示。有关如何编译PHP,使它支持png的文章可以在网上查找,本文不作记述。如果你不知道自己的PHP是否支持png,可以使用phpinfo()函数查看。一般情况下,如果在编译时没有特别指出要支持png,编译时GD就不会默认支持png

  注意:如果你同时使用了Zend Optimizer,那么,应该将以上几行放置在Zend Optimizer之后,否则你的Apache server将无法启动。