您好,登錄后才能下訂單哦!
大綱:
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í)行流程:
Apache接收請(qǐng)求。
Apache傳遞請(qǐng)求給mod_php。
mod_php定位磁盤文件,并加載到內(nèi)存中。
mod_php編譯源代碼成為opcode樹。
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加速器的工作原理:
緩存前 緩存后
二、幾種流行的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
三、比較
轉(zhuǎn)自:http://www.vpser.net/opt/apc-eaccelerator-xcache.html
免責(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)容。