国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

使用Xcache緩存器加速PHP網(wǎng)站的配置方法

2019-11-19 16:45:58
字體:
供稿:網(wǎng)友

推薦地址:http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/

  由于國內(nèi)網(wǎng)站備案比較麻煩,所以筆者便把網(wǎng)站放到了香港。雖然網(wǎng)站免去了備案的困擾,但是從訪問速度上來看,一般要比放于國內(nèi)的網(wǎng)站慢2-3倍,所以便想辦法對網(wǎng)站做了一些簡單的優(yōu)化,比如使用緩存系統(tǒng)來提升網(wǎng)站頁面訪問速度。

  目前用于Web的緩存系統(tǒng)很多,包括squid、varnish、Nginx自帶的proxy_cache、FastCGI中的fastcgi_cache、APC、Xcache等。

  像squid、varnish、Nginx自帶的proxy_cache這類系統(tǒng),屬于重量級產(chǎn)品,配置維護比較麻煩,不適合小型網(wǎng)站,而且一般用這類系統(tǒng)緩存靜態(tài)內(nèi)容,比如圖片、css、JavaScript等;像FastCGI中的fastcgi_cache,它主要用于緩存動態(tài)內(nèi)容,所以在訪問使用fastcgi_cache的網(wǎng)站時速度極快,但是筆者使用時發(fā)現(xiàn)其維護比較麻煩,特別是每次網(wǎng)站有數(shù)據(jù)要更新后,如果不等到緩沖期過期后得需要手動清除緩存才能看到網(wǎng)站更新的內(nèi)容;至于APC個人感覺性能就一般了,拿它和Xcache比較時發(fā)現(xiàn)訪問使用Xcache網(wǎng)站的速度明顯高于使用APC網(wǎng)站的速度(筆者沒有具體測試),所以最終選擇了使用Xcache。

  我們都知道PHP是一種動態(tài)語言,它在執(zhí)行時是以解釋的方式執(zhí)行,所以PHP代碼每次執(zhí)行時都會被解析和轉(zhuǎn)換成操作碼(opcode)。而Xcache是一個開源的操作碼緩存器/優(yōu)化器,它通過把解析/轉(zhuǎn)換PHP后的操作碼緩存到文件(直到原始代碼被修改)從而避免重復的解析過程,提高了代碼的執(zhí)行速度,通常能夠提高頁面生成速率2-5倍,降低了服務(wù)器負載,提高了用戶訪問網(wǎng)站的速度。

一、安裝Xcache

# wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz# tar zxvf xcache-1.3.0.tar.gz# cd xcache-1.3.0# /usr/local/php/bin/phpize# ./configure --enable-xcache--enable-xcache-coverager --enable-xcache-optimizer--with-php-config=/usr/local/php/bin/php-config# make && make install

注:--enable-xcache表示啟用Xcache支持;--enable-xcache-coverager表示包含用于測量加速器功效的附加特性;--enable-xcache-optimizer表示啟用操作碼優(yōu)化

  安裝完畢后系統(tǒng)會提示xcache.so模塊生成路徑,本次生成路徑為/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/,然后把xcache.so移動到/usr/local/php/include/php/ext目錄下。

二、配置管理Xcache

1、修改php配置文件

  配置時我們可以參考xcache的配置模板xcache.ini,此文件位于Xcache安裝程序中

# vi /usr/local/php/lib/php.ini

  然后添加如下內(nèi)容

extension_dir=/usr/local/php/include/php/ext[xcache-common]extension = xcache.so[xcache.admin]xcache.admin.enable_auth = Onxcache.admin.user = "xcache"xcache.admin.pass = ""[xcache]xcache.shm_scheme ="mmap"xcache.size=60Mxcache.count =1xcache.slots =8Kxcache.ttl=0xcache.gc_interval =0xcache.var_size=4Mxcache.var_count =1xcache.var_slots =8Kxcache.var_ttl=0xcache.var_maxttl=0xcache.var_gc_interval =300xcache.test =Offxcache.readonly_protection = Onxcache.mmap_path ="/tmp/xcache"xcache.coredump_directory =""xcache.cacher =Onxcache.stat=Onxcache.optimizer =Off[xcache.coverager]xcache.coverager =Onxcache.coveragedump_directory =""

2、生成Xcache緩存文件

# touch /tmp/xcache# chmod 777 /tmp/xcache

3、生成Xcache管理員的秘密(MD5密文)

# echo -n "123456" |

md5sume10adc3949ba59abbe56e057f20f883e

  然后將上述生成的MD5密文粘貼到php.ini文件中xcache.admin.pass = ""選項,xcache.admin.pass= "e10adc3949ba59abbe56e057f20f883e"

4、拷貝Xcache管理程序到網(wǎng)站根目錄下

# cp -a /tmp/xcache-1.3.0/admin//usr/local/nginx/html/

  然后重新啟動PHP,然后訪問http://localhost/admin ,用戶名為xcache 密碼為123456;另外,還可以通過phpinfo來驗證PHP是否支持Xcache

這里要注意的一點就是Xcache只能緩存默認的一些對象,如int, string, array等,不能緩存對象,否則讀取的時候就會報錯。

  如果你非要緩存對象的話也有辦法就是將對象序列化,讀取的時候再反序列化一次。

  下面我寫的一個Xcache的簡單類:

程序代碼

<?php/*** Xcache moudle*/class cacheHelper{  public $prefix;  function __construct(){    if(!function_exists('xcache_get')){      exit("This application must required XCache module.");    }  }  /**   * __set   *   * @param mixed $name   * @param mixed $value   * @access public   * @return void   */  public function __set($name, $value){    xcache_set($this->prefix.$name, $value);  }  /**   * __get   *   * @param mixed $name   * @access public   * @return mixed   */  public function __get($name){    return xcache_get($this->prefix.$name);  }  /**   * __isset   *   * @param mixed $name   * @access public   * @return bool   */  public function __isset($name){    return xcache_isset($this->prefix.$name);  }  /**   * __unset   *   * @param mixed $name   * @access public   * @return void   */  public function __unset($name){    xcache_unset($this->prefix.$name);  }}?>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 威信县| 寻乌县| 梓潼县| 阿合奇县| 柯坪县| 曲水县| 沐川县| 沁源县| 阿尔山市| 台东市| 铜山县| 阿尔山市| 大同县| 阿坝县| 古田县| 淳安县| 于田县| 藁城市| 玛沁县| 乐安县| 卓资县| 电白县| 汶川县| 甘孜县| 张北县| 罗城| 民勤县| 乐东| 济源市| 鹤岗市| 曲周县| 金堂县| 云安县| 茂名市| 南郑县| 卓尼县| 合水县| 阿拉尔市| 怀远县| 南投县| 大荔县|