LNMP上升級部署PHP加速器eAccelerator
作者:寒楓
Accelerator 是一個免費開源的PHP加速、優(yōu)化、編譯和動態(tài)緩存的項目,它可以通過緩存PHP代碼編譯后的結(jié)果來提高PHP腳本的性能,使得一向很復(fù)雜和離我們很遠(yuǎn)的 PHP腳本編譯問題完全得到解決。通過使用eAccelerator,可以優(yōu)化你的PHP代碼執(zhí)行速度,降低服務(wù)器負(fù)載,可以提高PHP應(yīng)用執(zhí)行速度最高達10倍。
本文僅在LAMP或LNMP架構(gòu)的基礎(chǔ)上升級部署PHP加速器“eAccelerator”
一、關(guān)于:eAccelerator的介紹和理解
1.起源背景
eAccelerator 是一個免費開源的PHP加速、優(yōu)化、編譯和動態(tài)緩存的項目,它可以通過緩存PHP代碼編譯后的結(jié)果來提高PHP腳本的性能,使得一向很復(fù)雜和離我們很遠(yuǎn)的 PHP腳本編譯問題完全得到解決。通過使用eAccelerator,可以優(yōu)化你的PHP代碼執(zhí)行速度,降低服務(wù)器負(fù)載,可以提高PHP應(yīng)用執(zhí)行速度最高 達10倍。
eAccelerator 項目誕生于2004年,當(dāng)時它是作為 Turck MMCache 項 目的一個分支提出并投入開發(fā)的。 Turck MMCache 由 Dmitry Stogov 開發(fā),是個非常優(yōu)秀的PHP內(nèi)存緩存加速系統(tǒng),如今仍然有很大部分 eAccelerator 的代碼應(yīng)用到該項目中,目前該項目有很長時間沒有更新了,對于最新的PHP5.x的支持還未推出。
2、原理
eAccelerator 通過把經(jīng)過編譯后的PHP代碼緩存到共享內(nèi)存中,并在用戶訪問的時候直接調(diào)用從而起到高效的加速作用。它的效率非常高,從創(chuàng)建共享內(nèi)存到查找編譯后的代碼 都在非常短的時間內(nèi)完成,對于不能緩存到共享內(nèi)存中的文件和代碼,eAccelerator還可以把他們緩存到系統(tǒng)磁盤上。
eAccelerator 通過把經(jīng)過編譯后的PHP代碼緩存到共享內(nèi)存中,并在用戶訪問的時候直接調(diào)用從而起到高效的加速作用。它的效率非常高,從創(chuàng)建共享內(nèi)存到查找編譯后的代碼 都在非常短的時間內(nèi)完成,對于不能緩存到共享內(nèi)存中的文件和代碼,eAccelerator還可以把他們緩存到系統(tǒng)磁盤上。
eAccelerator 同樣還支持PHP代碼的編譯和解釋執(zhí)行,你可以通過encoder.php腳本來對php代碼進行編譯達到保護代碼的目的,經(jīng)過編譯后的代碼必須運行在安 裝了eAccelerator的環(huán)境下。eAccelerator編譯后的代碼不能被反編譯,它不象其他一些編譯工具那樣可以進行反編譯,這將使得代碼更 加安全和高效。
3.調(diào)用 eAccelerator 過程
Apache中使用mod_php的請求、響應(yīng)執(zhí)行流程:
1、Apache接收請求。
2、Apache傳遞請求給mod_php。
3、mod_php定位磁盤文件,并加載到內(nèi)存中。
4、mod_php編譯源代碼成為opcode樹。
5、mod_php執(zhí)行opcode樹。
2、Apache傳遞請求給mod_php。
3、mod_php定位磁盤文件,并加載到內(nèi)存中。
4、mod_php編譯源代碼成為opcode樹。
5、mod_php執(zhí)行opcode樹。
PHP加速器相應(yīng)的就是第四步,目的就是防止PHP每次請求都重復(fù)編譯PHP代碼,因此提高的訪問速度(在漂移中俗稱:加速器)
//(以上信息摘自互聯(lián)網(wǎng),以下為配置過程)
二、系統(tǒng)信息
1.系統(tǒng)環(huán)境: (在原有基礎(chǔ)上直接升級部署)
參考博文:http://linuxxx.blog.51cto.com/1824808/719972
二、系統(tǒng)信息
1.系統(tǒng)環(huán)境: (在原有基礎(chǔ)上直接升級部署)
參考博文:http://linuxxx.blog.51cto.com/1824808/719972
硬件:HP 360G4/2G
System:Centos 5.4
Web:nginx-1.1.6.tar.gz
FastCGI:php-5.3.8.tar.gz
DB:mysql-5.5.3-m3.tar.gz
System:Centos 5.4
Web:nginx-1.1.6.tar.gz
FastCGI:php-5.3.8.tar.gz
DB:mysql-5.5.3-m3.tar.gz
2.eAccelerator軟件下載
#wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
#wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
//(張宴博客http://blog.s135.com)
#wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
#wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
//(張宴博客http://blog.s135.com)
三、安裝部署軟件
1.安裝eaccelerator-0.9.6.1.tar.bz2
#tar jxvf eaccelerator-0.9.6.1.tar.bz2
#cd eaccelerator-0.9.6.1/
#/usr/local/php/bin/phpize //
#./configure --enable-eaccelerator=shared \
1.安裝eaccelerator-0.9.6.1.tar.bz2
#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
//析:/usr/local/php/bin/phpize 命令為php擴展模塊,通過phpize可以建立php的外掛模塊,
//phpize在php編譯安裝后的bin目錄中
//在編譯你要添加的擴展模塊之前,需要執(zhí)行phpize命令;
#make
#make install
//析:/usr/local/php/bin/phpize 命令為php擴展模塊,通過phpize可以建立php的外掛模塊,
//phpize在php編譯安裝后的bin目錄中
//在編譯你要添加的擴展模塊之前,需要執(zhí)行phpize命令;
2.配置eAccelerator加速PHP
#mkdir /usr/local/eaccelerator_cache //為eaccelerator建緩存目錄
#chmod 777 /usr/local/eaccelerator_cache //賦予777權(quán)限
#mkdir /usr/local/eaccelerator_cache //為eaccelerator建緩存目錄
#chmod 777 /usr/local/eaccelerator_cache //賦予777權(quán)限
3.修改PHP配置文件php.ini
#vi /usr/local/php/etc/php.ini
//增加以下信息
;[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache" // 緩存文件存放位置
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"
#vi /usr/local/php/etc/php.ini
//增加以下信息
;[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache" // 緩存文件存放位置
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"
4.驗證eAccelerator是否部署成功
//通過瀏覽器訪問您的phpinfo()頁面
//通過瀏覽器訪問您的phpinfo()頁面

//或者運行#/usr/local/php/bin/php -i |head -10 查看php配置信息(主要是前10行)
//當(dāng)php -i 沒有顯示錯誤,那么請趕快#cd /usr/local/eaccelerator_cache
//如果有文件生成,證明eAccelerator為PHP加速安裝成功!

5.本次升級成功完成,下次升級memcache和memcached敬請期待。。。
說明:配置雖然不多,但比較經(jīng)典
責(zé)任編輯:龐桂玉
來源:
51cto.com