eAccelerator 配置和引數

2021-06-06 06:01:15 字數 3967 閱讀 9305

背景

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...