薛啟康(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起不來。
新聞熱點
疑難解答