您好,登錄后才能下訂單哦!
大綱:
1、php加速器原理
2、幾種流行的php加速器的安裝與配置
3、比較
一、PHP加速器原理
PHP加速器是一個為了提高PHP執行效率,從而緩存起PHP的操作碼,這樣PHP后面執行就不用解析轉換了,可以直接調用PHP操作碼,這樣速度上就提高了不少。
Apache中使用mod_php的請求、響應執行流程:
Apache接收請求。
Apache傳遞請求給mod_php。
mod_php定位磁盤文件,并加載到內存中。
mod_php編譯源代碼成為opcode樹。
mod_php執行opcode樹。
PHP加速器相應的就是第四步,它的目的就是防止PHP每次請求都重復編譯PHP代碼,因為在高訪問量的網站上,大量的編譯往往沒有執行速度快呢?所以這里面有個瓶頸就是PHP的重復編譯既影響了速度又加載了服務器負載,為了解決此問題,PHP加速器就這樣誕生了。
每一次的請求都會反復執行Parse-Compile-Execute,而在實際中,服務端的php代碼一般都不會發生變化,我們每次請求都要反復執行一些沒有必要的操作,這直接影響了PHP的性能,我們到這里肯定會想到為什么不用緩存了?目前已經有很多成熟的緩存機制,用在PHP代碼的執行方面應該綽綽有余,就算我們的PHP代碼會發生變化,我們也可以用一種成熟的算法來保證代碼改變后重新緩存,這一切都不是問題。是的,這就是PHP加速器的工作原理:
緩存前 緩存后
二、幾種流行的php加速器的安裝與配置
1、安裝配置APC
APC全稱是Alternative PHP Cache,它是PHP PECL中的一個擴展。
$ 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
下面我們再配置APC,因為我的PECL擴展路徑改變了,所以我得移動下編譯好的文件:
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/apc.so /usr/local/php/lib/php/extensions/PECL
然后我們再編輯php.ini文件進行配置,請把下面的代碼加入到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就會在phpinfo()信息中顯示。
2、安裝配置eAccelerator
eAccelerator的前身其實是truck-mmcache,因為開發truk-mmcache的人被Zend給招安了,所以開發eAccelerator的人繼承了truk-mmcache的一些特性,設計出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" 創建緩存目錄,重啟apache $mkdir /tmp/eaccelerator $chmod 777 /tmp/eaccelerator $/usr/local/apache/apachectl restart
在phpinfo()檢查是否安裝成功.
3、安裝配置XCache
XCache作為國人自己開發的東西,做小菜鳥的我也感到驕傲,而且XCache無論在速度還是性能上都做的不錯。下面就趕緊讓我們品嘗它吧!
$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 = "(執行) 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 = "" 創建緩存目錄,重啟apache $mkdir /tmp/xcache $chmod 777 /tmp/xcache $/usr/local/apache/bin/apachectl restart
三、比較
轉自:http://www.vpser.net/opt/apc-eaccelerator-xcache.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。