它還能夠?qū)δ_本進(jìn)行優(yōu)化以便加速它們的執(zhí)行速度。利用eAccelerator可以減少服務(wù)器的負(fù)載并提高PHP代碼的執(zhí)行時(shí)間。
eAccelerator配置選項(xiàng):
zend_extension_ts=”X:Appphp-5.2.13-Win32exteaccelerator.dll”
eaccelerator.shm_size=”32″
eaccelerator.cache_dir=”X:Appphp-5.2.13-Win32 emp”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
zend_extension_manager.optimizer_ts=”X:AppendendOptimizer-3.3.0libOptimizer-3.3.0″
zend_extension_ts=”X:AppendendOptimizer-3.3.0libendExtensionManager.dll”
zend_optimizer.optimization_level=”512″
eAccelerator配置參數(shù)詳細(xì)說(shuō)明:
eaccelerator.shm_size
指定 eAccelerator 能夠使用的共享內(nèi)存數(shù)量,單位:MB。“0″ 代表操作系統(tǒng)默認(rèn)。默認(rèn)值為 “0″。
eaccelerator.cache_dir
用戶磁盤(pán)緩存的目錄。eAccelerator 在該目錄中存儲(chǔ)預(yù)編譯代碼、session 數(shù)據(jù)、內(nèi)容等。相同的數(shù)據(jù)也可以存儲(chǔ)于共享內(nèi)存中(以獲得更快的存取速度)。默認(rèn)值為 “/tmp/eaccelerator”。
eaccelerator.enable
開(kāi)啟或關(guān)閉 eAccelerator。”1″ 為開(kāi)啟,”0″ 為關(guān)閉。默認(rèn)值為 “1″。
eaccelerator.optimizer
開(kāi)啟或關(guān)閉內(nèi)部?jī)?yōu)化器,可以提升代碼執(zhí)行速度。”1″ 為開(kāi)啟,”0″ 為關(guān)閉。默認(rèn)值為 “1″。
eaccelerator.debug
開(kāi)啟或關(guān)閉調(diào)試日志記錄。”1″ 為開(kāi)啟,”0″ 為關(guān)閉。默認(rèn)值為 “0″。
eaccelerator.check_mtime
開(kāi)啟或關(guān)閉 PHP 文件改動(dòng)檢查。”1″ 為開(kāi)啟,”0″ 為關(guān)閉。如果您想要在修改后重新編譯 PHP程序則需要設(shè)置為 “1″。默認(rèn)值為 “1″。
eaccelerator.filter
判斷哪些 PHP 文件必須緩存。您可以指定緩存和不緩存的文件類(lèi)型(如 “*.php *.phtml”等),如果參數(shù)以 “!” 開(kāi)頭,則匹配這些參數(shù)的文件被忽略緩存。默認(rèn)值為 “”,即,所有 PHP 文件都將被緩存。
eaccelerator.shm_max
當(dāng)使用 ” eaccelerator_put() ” 函數(shù)時(shí)禁止其向共享內(nèi)存中存儲(chǔ)過(guò)大的文件。該參數(shù)指定允許存儲(chǔ)的最大值,單位:字節(jié) (10240, 10K, 1M)。”0″ 為不限制。默認(rèn)值為 “0″。
eaccelerator.shm_ttl
當(dāng) eAccelerator 獲取新腳本的共享內(nèi)存大小失敗時(shí),它將從共享內(nèi)存中刪除所有在最后 “shm_ttl” 秒內(nèi)無(wú)法存取的腳本緩存。默認(rèn)值為 “0″,即:不從共享內(nèi)春中刪除任何緩存文件。
eaccelerator.shm_prune_period
當(dāng) eAccelerator 獲取新腳本的共享內(nèi)存大小失敗時(shí),他將試圖從共享內(nèi)存中刪除早于“shm_prune_period” 秒的緩存腳本。默認(rèn)值為 “0″,即:不從共享內(nèi)春中刪除任何緩存文件。
eaccelerator.shm_only
允許或禁止將已編譯腳本緩存在磁盤(pán)上。該選項(xiàng)對(duì) session 數(shù)據(jù)和內(nèi)容緩存無(wú)效。默認(rèn)值為 “0″,即:使用磁盤(pán)和共享內(nèi)存進(jìn)行緩存。
eaccelerator.compress
允許或禁止壓縮內(nèi)容緩存。默認(rèn)值為 “1″,即:允許壓縮。
eaccelerator.compress_level
指定內(nèi)容緩存的壓縮等級(jí)。默認(rèn)值為 “9″,為最高等級(jí)。
eaccelerator.name_sapce
一個(gè)所有鍵(keys)的前綴字符串。如果設(shè)置該前綴字符串則允許 .htaccess 或者 主配置文件在相同主機(jī)上運(yùn)行兩個(gè)相同的鍵名。
eaccelerator.keys
eaccelerator.sessions
eaccelerator.content
判斷哪些鍵(keys)、session 數(shù)據(jù)和內(nèi)容將被緩存。可用參數(shù)值為:
1.“shm_and_disk” – 同時(shí)在共享內(nèi)存和磁盤(pán)中緩存數(shù)據(jù)(默認(rèn)值);
2.“shm” – 如果共享內(nèi)存用盡或者數(shù)據(jù)容量大于 “eaccelerator.shm_max”,則在共享內(nèi)存或磁盤(pán)中緩存數(shù)據(jù);
3.“shm_only” – 僅在共享內(nèi)存中緩存數(shù)據(jù);
4.“disk_only” – 僅在磁盤(pán)中緩存數(shù)據(jù);
5.“none” – 禁止緩存數(shù)據(jù)。
eAccelerator應(yīng)用程序接口(API):
eaccelerator_put($key, $value, $ttl=0)
將 $value 存儲(chǔ)在共享內(nèi)存中,并存儲(chǔ) $tll 秒。
eaccelerator_get($key)
從共享內(nèi)存中返回 eaccelerator_put() 函數(shù)所存儲(chǔ)的緩存數(shù)值,如果不存在或者已經(jīng)過(guò)期,則返回 null。
eaccelerator_rm($key)
從共享內(nèi)存中刪除 $key。
eaccelerator_gc()
刪除所有過(guò)期的鍵(keys)
eaccelerator_lock($lock)
創(chuàng)建一個(gè)指定名稱的鎖(lock)。該鎖可以通過(guò) eaccelerator_unlock() 函數(shù)解除,在請(qǐng)求結(jié)束時(shí)也會(huì)自動(dòng)解鎖。例如:
eaccelerator_unlock($lock)
解除指定名稱的鎖(lock)。
eaccelerator_set_session_handlers()
安裝 eAccelerator session 句柄。從 PHP 4.2.0 以后,您可以通過(guò)設(shè)置 php.ini 中的 “session.save_handler=eaacelerator” 安裝 eAccelerator 句柄。
eaccelerator_cache_output($key, $eval_code, $ttl=0)
在共享內(nèi)存中緩存 $eval_code 的輸出,緩存 $ttl 秒。可以調(diào)用 mmcach_rm() 函數(shù)刪除相同 $key 的輸出。例如:
eaccelerator_cache_result($key, $eval_code, $ttl=0)
在共享內(nèi)存中緩存 $eval_code 的結(jié)果,緩存 $ttl 秒。可以調(diào)用 mmcach_rm() 函數(shù)刪除相同 $key 的結(jié)果。例如:
eaccelerator_cache_page($key, $ttl=0)
緩存整個(gè)頁(yè)面,且緩存 $ttl 秒。例如:
eaccelerator_rm_page($key)
從緩存中刪除由 eaccelerator_cache_page() 函數(shù)創(chuàng)建的相同 $key 的頁(yè)。
eaccelerator_encode($filename)
返回 $filename 文件經(jīng)過(guò)編譯后的編碼。
eaccelerator_load($code)
加載被 eaccelerator_encode() 函數(shù)編碼過(guò)的腳本。