商業應用的網站,其傳輸效率是十分重要的,通常在一些電子商務的站點上,服務器的反應速度決定了其服務質量,服務器的負載決定了它的最大可提供客戶的訪問容量。技術人員總是想方設法地盡可能地提高服務器的響應速度。而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,內容如下: 然後,在浏覽器上鍵入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的命中效果。