背景
eaccelerator 是乙個免費開源的php加速、優化、編譯和動態快取的專案,它可以通過快取php**編譯後的結果來提高php指令碼的效能。通過使用eaccelerator,可以優化php**執行速度,降低伺服器負載,使php應用執行速度提高1-10倍。
eaccelerator 專案誕生於2023年,當時它是作為 turck mmcache 專案的乙個分支提出並投入開發的。 turck mmcache 由 dmitry stogov 開發,是個非常優秀的php記憶體快取加速系統,如今仍然有很大部分 eaccelerator 的**應用到該專案中。
原理eaccelerator 通過把經過編譯後的php**快取到共享記憶體中,並在使用者訪問的時候直接呼叫從而起到高效的加速作用。它的效率非常高,從建立共享記憶體到查詢編譯後的**都在非常短的時間內完成,對於不能快取到共享記憶體中的檔案和**,eaccelerator還可以把他們快取到系統磁碟上。
安裝:
wget建立快取目錄tar -jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make && make install
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
配置引數:
eaccelerator.shm_size=」32″
eaccelerator 可以使用的共享記憶體的數量 (以兆為單位) . 「0″ 是指作業系統的預設值. 預設值是 「0″.可根據伺服器的實際情況來調整,16,32,64,128都是可以的。
eaccelerator.cache_dir=」/home/php/tmp」
這個目錄是給磁碟快取使用. eaccelerator 在這裡儲存預先編譯好的**, 程序資料, 內容以及使用者的自定義內容. 同樣的資料也能被儲存在共享記憶體中 (這樣可以提高訪問速度). 預設的設定是 「/tmp/eaccelerator」.
eaccelerator.enable=」1″
開啟或關閉 eaccelerator。」1″ 為開啟,」0″ 為關閉。預設值為 「1″。
eaccelerator.optimizer=」1″
啟或關閉內部優化器,可以提公升**執行速度。」1″ 為開啟,」0″ 為關閉。預設值為 「1″。
eaccelerator.check_mtime=」1″
開啟或者關閉 php 的檔案修改檢查. 「1″ 是指開啟, 「0″ 是指關閉. 如果您在修改以後重新編譯 php 的檔案,那麼您應當設定為 「1″. 預設值是 「1″.
eaccelerator.debug=」0″
開啟或關閉除錯日誌記錄。」1″ 為開啟,」0″ 為關閉。預設值為 「0″。會將快取命中得記錄寫入日誌。
eaccelerator.filter=」"
判斷哪些 php 檔案必須快取。您可以指定快取和不快取的檔案型別(如 「*.php *.phtml」等)
如果引數以 「!」 開頭,則匹配這些引數的檔案被忽略快取。預設值為 「」,即,所有 php 檔案都將被快取。
eaccelerator.shm_max=」0″
當使用 」 eaccelerator_put() 」 函式時禁止其向共享記憶體中儲存過大的檔案。該引數指定允許儲存的最大值,單位:位元組 (10240, 10k, 1m)。」0″ 為不限制。預設值為 「0″。
eaccelerator.shm_ttl=」0″
當 eaccelerator 獲取新指令碼的共享記憶體大小失敗時,它將從共享記憶體中刪除所有在最後 「shm_ttl」 秒內沒有訪問的指令碼快取。預設值為 「0″,即:不從共享內春中刪除任何快取檔案。
eaccelerator.shm_prune_period=」0″
當 eaccelerator 獲取新指令碼的共享記憶體大小失敗時,他將試圖從共享記憶體中刪除早於」shm_prune_period」 秒的快取指令碼。預設值為 「0″,即:不從共享內春中刪除任何快取檔案。
eaccelerator.shm_only=」0″
允許或禁止將已編譯指令碼快取在磁碟上。該選項對 session 資料和內容快取無效。預設值為 「0″,即:使用磁碟和共享記憶體進行快取。
eaccelerator.compress=」1″
允許或禁止壓縮內容快取。預設值為 「1″,即:允許壓縮。
eaccelerator.compress_level=」9″
指定內容快取的壓縮等級。預設值為 「9″,為最高等級。
eaccelerator.keys = 「disk_only」
eaccelerator.session = 「disk_only」
eaccelerator.content = 「disk_only」
設定內容快取的存放的地方,可以設定為:
shm_and_disk 在共享快取和硬碟(預設值)
shm 預設存在共享記憶體,如果共享記憶體已滿或大小超過 「eaccelerator.shm_max」 的值,就存到硬碟
shm_only 只存放在共享記憶體
disk_only 只存放在硬碟
none 不快取資料
eaccelerator.allowed_admin_path = 「/home/eaccelerator」
允許得到管理資訊和管理操作的指令碼路徑。
控制面板及反彙編:
如果要使用控制面板,則需要在編譯eaccelerator時加上 –with-eaccelerator-info選項,這個是預設值。
複製control.php檔案到你的跟目錄下,並且設定這個路徑到php.ini 或者 eaccelerator.ini的eaccelerator.allowed_admin_path選項。如果不這樣做,將看不到更多的相關資訊,也不能控制eaccelerator。
可以在control.php檔案中設定進入控制面板的使用者名稱和密碼。
當使用–with-eaccelerator-disassembler編譯時,需要把dasm.php和php_highlight.php也放到control.php目錄裡面。反彙編需要在編譯php時加上對tokenizer的支援(–enable-tokenizer),可以在dasm.php檔案的上面修改執行反彙編時的使用者名稱和密碼。
設定樣本:
[eaccelerator]zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="1"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"
eaccelerator.allowed_admin_path = "/home/eaccelerator"
eAccelerator 配置引數詳解
from eaccelerator.shm size 32 eaccelerator 可以使用的共享記憶體的數量 以兆為單位 0 是指作業系統的預設值.預設值是 0 可根據伺服器的實際情況來調整,16,32,64,128都是可以的。eaccelerator.cache dir home php tm...
eAccelerator與memcached的區別
歡迎各位加入群 206981178,共同學習 eaccelerator和memcached,是目前較為主流的兩個可使用在php之中的快取加速工具.eaccelerator專門為php開發,而memcached不僅僅用在php之中,其他所有的語言都可以使用.eaccelerator的主要功能 1.快取...
安裝eaccelerator加速PHP
tar jxvf eaccelerator 0.9.6.tar.bz2 cd eaccelerator 0.9.6 phpize configure enable eaccelerator shared with php config usr bin php config make make ins...