亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP加速器eAccelerator配置使用步驟詳解

2020-03-24 18:11:59
字體:
來源:轉載
供稿:網友
這次給大家帶來PHP加速器eAccelerator配置使用步驟詳解,PHP加速器eAccelerator配置使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

為了更好的提高系統的性能考慮對PHP再進行一些優化,前兩年接觸過MMCache和eAccelerator,尤其對eAccelerator非常喜歡,這次優化也選擇了它。

分享一些eAccelerator配置與優化文檔。

目錄:
一、eAccelerator介紹
1、背景
2、原理

二、安裝和配置
1、支持平臺
2、系統要求
3、安裝
4、php.ini文件配置
5、驗證安裝

三、使用eAccelerator開發PHP代碼
1、API文檔和接口說明
2、開發范例

四、附錄和參考資料
一、eAccelerator介紹
1、背景
eAccelerator 是一個免費開源的PHP加速、優化、編譯和動態緩存的項目,它可以通過緩存PHP代碼編譯后的結果來提高PHP腳本的性能,使得一向很復雜和離我們很遠的PHP腳本編譯問題完全得到解決。通過使用eAccelerator,可以優化你的PHP代碼執行速度,降低服務器負載,可以提高PHP應用執行速度最高達10倍。
eAccelerator 項目誕生于2004年,當時它是作為 Turck MMCache 項目的一個分支提出并投入開發的。 Turck MMCache 由 Dmitry Stogov 開發,是個非常優秀的PHP內存緩存加速系統,如今仍然有很大部分 eAccelerator 的代碼應用到該項目中,目前該項目有很長時間沒有更新了,對于最新的PHP5.x的支持還未推出。
2、原理
eAccelerator 通過把經過編譯后的PHP代碼緩存到共享內存中,并在用戶訪問的時候直接調用從而起到高效的加速作用。它的效率非常高,從創建共享內存到查找編譯后的代碼都在非常短的時間內完成,對于不能緩存到共享內存中的文件和代碼,eAccelerator還可以把他們緩存到系統磁盤上。
eAccelerator 同樣還支持PHP代碼的編譯和解釋執行,你可以通過encoder.php腳本來對php代碼進行編譯達到保護代碼的目的,經過編譯后的代碼必須運行在安裝了eAccelerator的環境下。eAccelerator編譯后的代碼不能被反編譯,它不象其他一些編譯工具那樣可以進行反編譯,這將使得代碼安全和高效。

二、eAccelerator安裝配置
1、支持平臺
由于aAccelerator提供了大部分基于共享內存的API,所以在*nix的平臺上將得到更好的支持,雖然也發布了基于windows平臺的binary版本,但我在這里就只提供基于*nix平臺的配置和說明,目前可以支持的平臺包括Linux, FreeBSD, OpenBSD, Mac OS X, Solaris, AIX en HP-UX。
2、系統要求
php4 or php5
autoconf
automake
libtool
m4
eAccelerator 只支持使用 mod_php 或者 fastcgi mode 安裝的PHP
3、安裝
先去eAccelerator官方下載最新版的源碼包:eaccelerator-0.9.5-beta.tar.bz2

#tar -zxvf ./eaccelerator-0.9.5-beta2.tar.bz2#cd eaccelerator-0.9.5-beta2#export PHP_PREFIX="/usr/local" (把PHP安裝目錄導入到html' target='_blank'>環境變量,FreeBSD默認是/usr/local)#$PHP_PREFIX/bin/phpize#./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config#make#make instal

4、ini文件配置
安裝完成,下面開始配置php.ini文件,eAccelerator提供了兩種配置和調用方式,分別如下。
安裝為 Zend extension 模式:

zend_extension="/usr/local/lib/php/20050922/eaccelerator.so"eaccelerator.shm_size="16"eaccelerator.cache_dir="/tmp/eaccelerator"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.debug="0"eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="0"eaccelerator.shm_prune_period="0"eaccelerator.shm_only="0"eaccelerator.compress="1"eaccelerator.compress_level="9"

如果你使用了thread safe模式安裝的PHP,你必須使用 “zend_extension_ts” 替換第一行的 “zend_extension”.
安裝為 PHP extension 模式:(這是大部分采用的方式)

extension="eaccelerator.so"eaccelerator.shm_size="16"eaccelerator.cache_dir="/tmp/eaccelerator"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.debug="0"eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="0"eaccelerator.shm_prune_period="0"eaccelerator.shm_only="0"eaccelerator.compress="1"eaccelerator.compress_level="9"

有關php.ini文件的詳細配置說明,請參照源碼目錄的README文檔或者訪問官方文檔:ini setting
完成安裝配置后,我們最后要創建緩存目錄

#mkdir /tmp/eaccelerator#chmod 777 /tmp/eaccelerator

5、驗證安裝結果
通過瀏覽器訪問您的phpinfo()頁面或者運行 php -i 得到php配置信息,里面如果看到類似下面的信息就表示安裝成功了。
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
我的機器上同時還安裝了Zend Optimizer3.0.1,所以看到的信息如下:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by Zend Technologies
with Zend Optimizer v3.0.1, Copyright (c) 1998-2006, by Zend Technologies
如果你打開了eAccelerator的debug選項,可以從日志中看到類似下面的信息

#tail /var/log/httpd/eAccelerator_logEACCELERATOR hit: "/var/www/toplee.com/blog/index.php"EACCELERATOR hit: "/var/www/toplee.com/blog/wp-blog-header.php"EACCELERATOR hit: "/var/www/toplee.com/blog/wp-config.php"EACCELERATOR hit: "/var/www/toplee.com/blog/wp-settings.php"EACCELERATOR hit: "/var/www/toplee.com/blog/wp-content/plugins/wp-cache/wp-cache-phase1.php"

以上信息表示文件都得到了緩存和命中。
至此,完成了全部的安裝和配置,好好享受eAccelerator帶給你的驚喜吧,根據Michael的測試,效果的確相當的好。

三、在PHP中可以使用eAccelerator的API開發
1、API和文檔說明:
eAccelerator提供了便捷便捷而又穩定的本機緩存實現方式,由于大部分代碼實現基于共享內存,所以只能在*nix平臺中使用,Windows平臺Michael就暫時不知道何時有這方面的支持了。
eAccelerator提供如下的API接口和文件:(下述文件均在源碼包的doc/php/目錄下)
文件列表:

cache.phpdasm.phpencoder.phpinfo.phploader.phpsession.phpshared_memory.php

接口列表

array eaccelerator_cached_scripts () void eaccelerator_cache_output (string $key, string $eval_code, [int $ttl = 0]) void eaccelerator_cache_page (string $key, [int $ttl = 0]) void eaccelerator_cache_result (string $key, string $code, [int $ttl = 0])void eaccelerator_caching (boolean $flag) void eaccelerator_clean () void eaccelerator_clear ()array eaccelerator_dasm_file (mixed $filename) mixed eaccelerator_encode (mixed $src, [mixed $prefix = ''], [string $pre_content = ''], [string $post_content = ''])  void eaccelerator_gc ()mixed eaccelerator_get (string $key)  array eaccelerator_info () array eaccelerator_list_keys ()void eaccelerator_load () boolean eaccelerator_lock (string $key)void eaccelerator_optimizer (boolean $flag)  void eaccelerator_purge () boolean eaccelerator_put (string $key, mixed $value, [int $ttl = 0]) array eaccelerator_removed_scripts () boolean eaccelerator_rm (string $key) void eaccelerator_rm_page (string $key)  boolean eaccelerator_set_session_handlers () boolean eaccelerator_unlock (string $key)

有關上述文檔詳細說明請參考官方文檔:API Documents
下面有部分網友翻譯后的接口說明:
eaccelerator_put($key, $value, $ttl=0)
將 $value 以 $key 為鍵名存進緩存(php4下支持對像類型,看源碼好像zend2里不支持了),$ttl 是這個緩存的生命周期,單位是秒,省略該參數或指定為 0 表示不限時,直到服務器重啟清空為止。

eaccelerator_get($key)  根據 $key 從緩存中返回相應的 eaccelerator_put() 存進去的數據,如果這項緩存已經過期或不存在那么返回值是 NULLeaccelerator_rm($key)  根據 $key 移除緩存eaccelerator_gc()  移除清理所有已過期的 keyeaccelerator_lock($key)  為 $key 加上鎖定操作,以保證多進程多線程操作時數據的同步。需要調用 eaccelerator_unlock($key) 來釋放這個鎖或等待程序請求結束時自動釋放這個鎖。
  <?php    eaccelerator_lock("count");    eaccelerator_put("count",eaccelerator_get("count")+1));  ?>eaccelerator_unlock($key)

根據 $key 釋放鎖

eaccelerator_cache_output($key, $eval_code, $ttl=0)

將 $eval_code 代碼的輸出緩存 $ttl 秒,($ttl參數同 eacclerator_put)
例如:

<?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?>eaccelerator_cache_result($key, $eval_code, $ttl=0)

將 $eval_code 代碼的執行結果緩存 $ttl 秒,($ttl參數同 eacclerator_put),類似 cache_output
例如:

  <?php eaccelerator_cache_result('test', ' time() . "Hello";', 30); ?>
eaccelerator_cache_page($key, $ttl=0)

將當前整頁緩存 $ttl 秒。
例如:

  <?php    eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30);    echo time();    phpinfo();  ?>eaccelerator_rm_page($key)

刪除由 eaccelerator_cache_page() 執行的緩存,參數也是 $key

2、PHP代碼中使用eAccelerator加速
測試下eAccelerator強大的威力:(該代碼在 cli 模式下可能無效)

<?phpclass test_cache {  var $pro = 'hello';  function test_cache() {    echo "Object Created!<br>/n";  }  function func() {    echo ', the world!';  }  function now($t) {    echo date('Y-m-d H:i:s', $t);  }}$tt = eaccelerator_get("test_tt");if (!$tt){  $tt = new test_cache;  eaccelerator_put("test_tt", $tt);  echo "no cached!<br>/n";}else {  echo "cached<br>/n";}echo $tt->pro; $tt->func();$tt->now(time() + 86400);?>

另外,據說在著名的vBulletin 3.60Beta版里面已經集成了對eAccelerator的支持。
一段來自vBulletin里面的代碼

// ############## // eAccelerator/** * Class for fetching and initializing the vBulletin datastore from eAccelerator * * @package vBulletin * @version $Revision: 0.1 $ * @date $Date: 2005/06/12 13:14:18 $ */ class vB_Datastore_eAccelerator extends vB_Datastore { /** * Fetches the contents of the datastore from eAccelerator * * @param array Array of items to fetch from the datastore * * @return void */ function fetch($itemarray) { if (!function_exists('eaccelerator_get')) { trigger_error("eAccelerator not installed", E_USER_ERROR); }foreach ($this->defaultitems AS $item) { $this->do_fetch($item); }if (is_array($itemarray)) { foreach ($itemarray AS $item) { $this->do_fetch($item); } }$this->check_options();// set the version number variable $this->registry->versionnumber =& $this->registry->options['templateversion']; }/** * Fetches the data from shared memory and detects errors * * @param string title of the datastore item * * @return void */ function do_fetch($title) { $data = eaccelerator_get($title); if ($data === null) { // appears its not there, lets grab the data, lock the shared memory and put it in $data = ''; $dataitem = $this->dbobject->query_first(" SELECT title, data FROM " . TABLE_PREFIX . "datastore WHERE title = '" . $this->dbobject->escape_string($title) ."' "); if (!empty($dataitem['title'])) { $data =& $dataitem['data']; $this->build($dataitem['title'], $dataitem['data']); } } $this->register($title, $data); } /** * Updates the appropriate cache file * * @param string title of the datastore item * * @return void */ function build($title, $data) { if (!function_exists('eaccelerator_put')) { trigger_error("eAccelerator not installed", E_USER_ERROR); } eaccelerator_lock($title); eaccelerator_put($title, $data); eaccelerator_unlock($title); } }

相信看了本文案例你已經掌握了方法,更多精彩請關注 其它相關文章!

推薦閱讀:

PHP7基于函數方式使用lib庫案例代碼分析

PHP找出鏈表中環入口節點步驟詳解

以上就是PHP加速器eAccelerator配置使用步驟詳解的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av电影手机在线观看| 欧美一级淫片videoshd| 久久久在线视频| 日韩在线中文视频| 国产精品第一区| 日韩成人中文字幕在线观看| 日韩国产精品一区| 伊人伊人伊人久久| 国产精品久久久av久久久| 视频在线观看99| 日韩视频在线观看免费| 欧洲美女7788成人免费视频| 热99精品只有里视频精品| 疯狂欧美牲乱大交777| 亚洲成avwww人| 日韩中文字幕国产精品| 欧美激情国内偷拍| 热99在线视频| 亚洲香蕉成人av网站在线观看| 国产精品欧美风情| 亚洲iv一区二区三区| 日韩av最新在线观看| 国产在线视频2019最新视频| 久久久噜噜噜久久| 国产精品一区二区久久久| 美女av一区二区三区| 少妇高潮 亚洲精品| 51ⅴ精品国产91久久久久久| 亚洲一区国产精品| 亚洲欧美日韩国产精品| 日韩在线精品一区| 欧美裸体xxxxx| 夜夜嗨av色综合久久久综合网| 欧美国产日韩精品| 国产精品一区二区三| 日韩av不卡在线| 97国产精品人人爽人人做| 亚洲性日韩精品一区二区| 欧美综合国产精品久久丁香| 色综久久综合桃花网| 成人精品一区二区三区电影免费| 国模私拍一区二区三区| 美女撒尿一区二区三区| 黑人精品xxx一区一二区| 日韩精品视频免费专区在线播放| 精品国产美女在线| 国产亚洲精品久久久| 久久网福利资源网站| 亚洲欧洲国产一区| 青青久久av北条麻妃海外网| 国产成人高潮免费观看精品| 亚洲欧洲在线播放| 日韩在线观看高清| 久久视频国产精品免费视频在线| 精品视频在线播放| 欧洲s码亚洲m码精品一区| 午夜精品久久久久久久久久久久久| 久久99精品国产99久久6尤物| 精品国产福利视频| 91成人福利在线| 一区二区三区视频观看| 亚洲性夜色噜噜噜7777| 欧美色欧美亚洲高清在线视频| 亚洲精品一区二区在线| 日韩国产高清视频在线| 欧美性猛交xxxx乱大交蜜桃| 91久久久亚洲精品| 日韩经典中文字幕| 亚洲自拍偷拍色图| 92看片淫黄大片欧美看国产片| 国产精品视频不卡| 亚洲精品久久久久久下一站| 欧美性猛交xxxx免费看| 91综合免费在线| zzijzzij亚洲日本成熟少妇| 久久久久久久成人| 国产亚洲美女精品久久久| 亚洲精品自拍偷拍| 色婷婷亚洲mv天堂mv在影片| 国产午夜精品一区理论片飘花| 久久久久久久久91| 青青a在线精品免费观看| 日韩美女毛茸茸| 色偷偷偷亚洲综合网另类| 午夜精品一区二区三区视频免费看| 亚洲伊人成综合成人网| 另类视频在线观看| 性欧美激情精品| 久久亚洲精品一区二区| 久久久精品一区二区三区| 亚洲精品一区二区三区婷婷月| 欧美孕妇性xx| 国产欧美日韩免费| 国产精品美乳在线观看| 亚洲欧美另类中文字幕| 国产九九精品视频| 亚洲第一精品福利| 人人做人人澡人人爽欧美| 国产精品无av码在线观看| 久久精品国产一区二区电影| 性欧美xxxx| 国产国语videosex另类| 日韩免费av片在线观看| 最好看的2019的中文字幕视频| 日韩欧美一区二区三区久久| 国产91露脸中文字幕在线| 97国产精品人人爽人人做| 久久亚洲国产精品成人av秋霞| 久久视频在线播放| 国产精品永久免费观看| 原创国产精品91| 亚洲高清久久久久久| 国产精品偷伦视频免费观看国产| 欧美在线精品免播放器视频| 北条麻妃一区二区在线观看| 羞羞色国产精品| 精品高清一区二区三区| 国产一区二区三区丝袜| 欧美成人在线网站| 中文字幕精品www乱入免费视频| 日韩精品高清在线| 久久久久久久久国产| 久热精品视频在线| 最近2019中文免费高清视频观看www99| 性色av一区二区三区红粉影视| 日本一欧美一欧美一亚洲视频| 情事1991在线| 亚洲精品国产精品国自产观看浪潮| 91精品视频一区| 国产91精品最新在线播放| 亚洲精品国产精品久久清纯直播| 国产在线不卡精品| 欧美性猛交xxxx乱大交极品| 国产精品美女网站| 91在线精品视频| 久久99精品久久久久久青青91| 亚洲欧洲一区二区三区久久| 日韩av资源在线播放| 欧美性色xo影院| 亚洲国产天堂久久综合网| 久久久久久亚洲精品不卡| 亚洲精品小视频在线观看| 欧美xxxx做受欧美| 久色乳综合思思在线视频| 在线看国产精品| 在线亚洲欧美视频| 韩国美女主播一区| 久久夜色精品国产| 欧美日韩电影在线观看| 日韩精品在线观看视频| 久久久av亚洲男天堂| 亚洲精品美女在线观看| 国产日韩欧美中文在线播放| 精品色蜜蜜精品视频在线观看| 亚洲国产精品热久久| 日韩av片永久免费网站| 国产v综合v亚洲欧美久久| 亚洲久久久久久久久久久| 8050国产精品久久久久久| 日韩av网站大全| 久久中文久久字幕| 精品久久久久久久中文字幕| 久久久免费高清电视剧观看| 精品视频久久久久久久|