最近想著如何優(yōu)化一下php,找到了eAccelerator這個開源軟件,一下引用一段官方說明介紹eAccelerator:
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司,提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
eAccelerator是一款php加速和優(yōu)化軟件,通過將編譯后的php緩存起來來提高php的性能。通常能夠降低服務(wù)器負載并加快php執(zhí)行1-10倍(官方說法)。
注:只支持5.1以上的php版本
下面記錄一下安裝過程以及使用前后的效果對比。
1、下載安裝
依賴的軟件包:autoconf, automake, libtool, m4
wget https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
然后,執(zhí)行
/usr/local/php5.3.28/bin/phpize (此步驟為生成configure文件。具體路徑修改下就ok。phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊,官方說明網(wǎng)址為:http://php.net/manual/en/install.pecl.phpize.php)
若執(zhí)行時遇到關(guān)于autoconf的報錯,如下
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
此問題是因為沒有安裝m4和autoconf,yum安裝即可
yum install m4
yum install autoconf
編譯完成后,make & makeinstall
2、修改php配置文件,php添加eAccelerator有兩種方式,一種是作為zend的擴展,一種作為php的擴展。先說作為php的擴展:
在php.ini的擴展配置部分(可在php.ini里搜索extension)添加如下內(nèi)容
extension="eaccelerator.so"
eaccelerator.shm_size="16" #eAccelerator可用的最大內(nèi)存,單位M
eaccelerator.cache_dir="/tmp/eaccelerator" #磁盤用來存儲緩存的目錄,eAccelerator在這里存儲預(yù)編譯代碼、session數(shù)據(jù)、內(nèi)容和用戶條目。同樣的內(nèi)容也可以存儲到內(nèi)存中以便更快的讀取。
eaccelerator.enable="1" #1允許 0禁止
eaccelerator.optimizer="1" #意識是是否允許內(nèi)部優(yōu)化器,1允許 0禁止
eaccelerator.check_mtime="1" #是否允許檢查php文件是否更改,如果你想重新編譯php文件在他們修改后,則這里應(yīng)該設(shè)置為“1”
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0" #從內(nèi)存中清除緩存的周期,0為不清除
eaccelerator.shm_only="0" #是否允許在磁盤緩存編譯過的文件。這不會影響到session數(shù)據(jù)和內(nèi)容的緩存。0表示同時啟用磁盤和內(nèi)存緩存
配置完成后,重啟apache。打開幾個頁面之后,觀察指定的目錄里有沒有文件產(chǎn)生。如果想獲得更多地信息,可以拷貝control.php至到網(wǎng)站目錄下并且在php.ini文件中添加
eaccelerator.allowed_admin_path “control.php路徑”
同時還可以設(shè)置訪問control.php的用戶名和密碼,在control.php文件里設(shè)置即可。
效果:我們公司的網(wǎng)站訪問量沒那么大,優(yōu)化后的效果不是很明顯。但是進行壓測的時候性能還是有一定的提升。