cache|網站 商業應用的網站,其傳輸效率是十分重要的,通常在一些電子商務的網站上,伺服器的反應速度決定了其服務品質,伺服器的負載決定了它的最大可提供客戶的訪問容量。技術人員總是想方設法地儘可能地提高伺服器的響應速度。而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起不來。