溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

三款免費(fèi)的PHP加速器:APC、eAccelerator、XCache比較

發(fā)布時(shí)間:2020-05-04 23:15:53 來(lái)源:網(wǎng)絡(luò) 閱讀:2939 作者:skypeGNU1 欄目:web開發(fā)

大綱:

1、php加速器原理  

2、幾種流行的php加速器的安裝與配置

3、比較


一、PHP加速器原理

    PHP加速器是一個(gè)為了提高PHP執(zhí)行效率,從而緩存起PHP的操作碼,這樣PHP后面執(zhí)行就不用解析轉(zhuǎn)換了,可以直接調(diào)用PHP操作碼,這樣速度上就提高了不少。

Apache中使用mod_php的請(qǐng)求、響應(yīng)執(zhí)行流程:

  1. Apache接收請(qǐng)求。

  2. Apache傳遞請(qǐng)求給mod_php。

  3. mod_php定位磁盤文件,并加載到內(nèi)存中。

  4. mod_php編譯源代碼成為opcode樹。

  5. mod_php執(zhí)行opcode樹。

    PHP加速器相應(yīng)的就是第四步,它的目的就是防止PHP每次請(qǐng)求都重復(fù)編譯PHP代碼,因?yàn)樵诟咴L問(wèn)量的網(wǎng)站上,大量的編譯往往沒(méi)有執(zhí)行速度快呢?所以這里面有個(gè)瓶頸就是PHP的重復(fù)編譯既影響了速度又加載了服務(wù)器負(fù)載,為了解決此問(wèn)題,PHP加速器就這樣誕生了。

    每一次的請(qǐng)求都會(huì)反復(fù)執(zhí)行Parse-Compile-Execute,而在實(shí)際中,服務(wù)端的php代碼一般都不會(huì)發(fā)生變化,我們每次請(qǐng)求都要反復(fù)執(zhí)行一些沒(méi)有必要的操作,這直接影響了PHP的性能,我們到這里肯定會(huì)想到為什么不用緩存了?目前已經(jīng)有很多成熟的緩存機(jī)制,用在PHP代碼的執(zhí)行方面應(yīng)該綽綽有余,就算我們的PHP代碼會(huì)發(fā)生變化,我們也可以用一種成熟的算法來(lái)保證代碼改變后重新緩存,這一切都不是問(wèn)題。是的,這就是PHP加速器的工作原理:


      緩存前                                         緩存后

三款免費(fèi)的PHP加速器:APC、eAccelerator、XCache比較                   三款免費(fèi)的PHP加速器:APC、eAccelerator、XCache比較


二、幾種流行的php加速器的安裝與配置

1、安裝配置APC

    APC全稱是Alternative PHP Cache,它是PHP PECL中的一個(gè)擴(kuò)展。

$ wget http://pecl.php.net/get/APC-3.0.19.tgz
$ tar xvzf APC-3.0.19.tgz
$ cd APC-3.0.19/APC-3.0.19
$ /usr/local/php/bin/phpize
$ ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
$ make
$ make install

下面我們?cè)倥渲肁PC,因?yàn)槲业腜ECL擴(kuò)展路徑改變了,所以我得移動(dòng)下編譯好的文件:

$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/apc.so /usr/local/php/lib/php/extensions/PECL

然后我們?cè)倬庉媝hp.ini文件進(jìn)行配置,請(qǐng)把下面的代碼加入到php.ini中即可:

extension_dir = "/usr/local/php/lib/php/extensions/PECL"
extension = apc.so
; APC
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on

這樣重啟apache就會(huì)在phpinfo()信息中顯示。

       

2、安裝配置eAccelerator

   eAccelerator的前身其實(shí)是truck-mmcache,因?yàn)殚_發(fā)truk-mmcache的人被Zend給招安了,所以開發(fā)eAccelerator的人繼承了truk-mmcache的一些特性,設(shè)計(jì)出eAccelerator加速器。安裝如下:

$wget http://jaist.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.bz2
$ tar -jxf eaccelerator-0.9.5.tar.bz2
$ cd eaccelerator-0.9.5
$ /usr/local/php/bin/phpize
$./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
$ make
$ make install
$ mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php/lib/php/extensions/PECL

將下面代碼加入php.ini文件中

extension = eaccelerator.so
; eAccelerator
eaccelerator.shm_size = "16"
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 = "0"
eaccelerator.prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
創(chuàng)建緩存目錄,重啟apache
$mkdir /tmp/eaccelerator
$chmod 777 /tmp/eaccelerator
$/usr/local/apache/apachectl restart

在phpinfo()檢查是否安裝成功.


3、安裝配置XCache

    XCache作為國(guó)人自己開發(fā)的東西,做小菜鳥的我也感到驕傲,而且XCache無(wú)論在速度還是性能上都做的不錯(cuò)。下面就趕緊讓我們品嘗它吧!

$wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
$tar xvzf xcache-1.2.2.tar.gz
$cd xcache-1.2.2
$/usr/local/php/bin/phpize
$./configure –enable-xcache –enable-xcache-coverager –with-php-config=/usr/local/php/php-config
$make
$sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so /usr/local/php/lib/php/extensions/PECL

在php.ini添加配置信息:

extension = xcache.so
; xcache
xcache.admin.user = "admin"
xcache.admin.pass = "(執(zhí)行) echo ’(你的密碼)’|md5sum(得出的密文)"
;
xcache.size = 24M
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = On
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
;
xcache.coverager = On
xcache.coveragedump_directory = ""

創(chuàng)建緩存目錄,重啟apache
$mkdir /tmp/xcache
$chmod 777 /tmp/xcache
$/usr/local/apache/bin/apachectl restart


三、比較

三款免費(fèi)的PHP加速器:APC、eAccelerator、XCache比較

轉(zhuǎn)自:http://www.vpser.net/opt/apc-eaccelerator-xcache.html



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI