今天利用eAccelerator這個讓PHP加速的程式套件,提高網站的瀏覽效率,最新的版本是0.9.5.3。這是一個能夠讓php網頁程式加速的解決方案,方法是建立執行php碼的快取。
頁面快取如memcache,整個效率是更好的,把資料庫的問題也做解決,比起單純加速php要佳。而單就PHP程式加速的領域,除了有Zend套件與工具外,過去還有著名的PHP加速套件「turck-mmcache」,可惜作者跳槽到Zend去,就沒有繼續開發更新,而後來則由開源社群推出了免費的eAccelerator。
這套加速工具的原理很簡單,就是把PHP編譯過的二進位碼快取暫存起來,達到節省編譯文件輸出到網頁上的時間,進而提高了瀏覽效率(這和memcache建立的網頁程式讀取資料庫後生成的頁面快取不同,eAccelerator僅減少php程式即時執行的時間,故最佳方案還是memcache)。
我自己使用的設定如下:
[eAccelerator]
zend_extension_ts="放置PHP擴充套件的目錄名稱根據PHP版本不同而選擇的eaccelerator套件檔案名稱" (linux版為extension="eaccelerator.so")
eaccelerator.shm_size="64" (分配給eAccelerator加速的記憶體mb量設置)
eaccelerator.cache_dir="給eAccelerator暫存快取檔案的目錄" (如eaccelerator.cache_dir="/var/tmp/eaccelerator")
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.debug="0"
eaccelerator.check_mtime="1"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0" (選1的話,完全用記憶體,但如果網站資料很多就不選)
eaccelerator.compress="1"
eaccelerator.compress_level="9" (9是預設的最高壓縮等級)
eaccelerator.keys="shm_and_disk" (建議只選shm,優先使用記憶體,分配到的記憶體用光時才用磁碟空間,後面亦同)
eaccelerator.sessions="shm_and_disk"
eaccelerator.content="shm_and_disk"
在執行效率方面,碰到比較大的php檔案,加速的效果會很顯著。
以下是優格網過去使用的歷史資料,現在eAccelerator搭配php 5.2.X的效率都比之前更好了:
以本站來說,使用PHP 5.1.1未經過eAccelerator加速的伺服器運作效率,只比PHP 5.0.5經過eAccelerator慢了約0.1秒左右。
換言之,PHP 5.1.1透過架構上的改進,擁有相當快的速度,足以和PHP 5.0.5經過eAccelerator加速後匹敵。
eAccelerator如果是用在PHP 4.4.1,加速效果會比沒有使用eAccelerator的PHP 4.4.1更明顯。