Linux

WordPress启用memcached缓存

Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或页面引用结果的直接数据,如字符串、对象等。

 

PHP有2个组件memcache和memcached,基本都是教你怎么安装memcached,但不去解释两者之间的区别。

 

简单解释:

基于的库不同

memcache扩展是原生的(基于pecl扩展库)

memcached扩展是基于libmemcached库开发的,出现较晚,功能更加完善。

这里推荐使用memcached。

 

一、部署memcached

yum  install  memcached -y

#启动memcached

service  memcached start

#添加开机启动

chkconfig memcached on

集成php-memcached扩展

先安装libmemcached   这里参考了张戈的博客..

编译libmemcached 之前需要安装cyrus-sasl-devel

yum install cyrus-sasl-devel

开始编译libmemcached

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --with-memcached=/usr/local/memcached --prefix=/usr/local/libmemcached
make && make install
cd ..

安装php-memcached组件

#从官方下载php-memcached的最新源码包
wget http://pecl.php.net/get/memcached-2.2.0.tgz
 
#解压和编译
tar zxvf memcached-2.2.0.tgz
cd memcached-2.2.0

#注意已有php的实际路径
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config   --with-libmemcached-dir=/usr/local/libmemcached
make && make install

编辑php.ini文件,在最后插入如下参数

extension=memcached.so

查看是否加载成功

php -m | grep memcached

测试缓存

<?php
$m = new Memcached();
$m->addServer( '127.0.0.1', 11211 );
$m->set( 'foo', 100 );
echo $m->get( 'foo' ) . "\n";

保存代码为test.php,执行php -f test.php 输出100表示安装成功

二、应用到Wordpress缓存

1.安装插件

https://github.com/tollmanz/wordpress-pecl-memcached-object-cache

下载并解压得到的 object-cache.php,上传到 wp-content 目录即可开启memcached缓存。

2.查看效果

做完第2步之后,去网站前台刷新几次,产生缓存,然后从官方下载探针:

http://pecl.php.net/get/memcache-3.0.8.tgz

解压,得到memcache.php文件,编辑找到下面代码:

define('ADMIN_USERNAME','memcache');    // Admin Username
define('ADMIN_PASSWORD','password');    // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
 
$MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array
$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array

修改为:

define('ADMIN_USERNAME','memcache');    // Admin Username
define('ADMIN_PASSWORD','password');    // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
 
$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // add more as an array

将memcache.php上传到网站目录,访问memcache.php这个文件,即可看到memcached状态:

登录后会发现里面没有Hits数据,这说明Wordpress没有成功连接到memcached

在wp-config.php加入以下参数:

global $memcached_servers;
$memcached_servers = array(
    array(
        '127.0.0.1', // Memcached server IP address
         11211        // Memcached server port
    )
);

刷新页面,已可以获取到Hits数据

 

 

 

(10)

本文由 樱花博客 作者:樱花 发表,转载请注明来源!

关键词:, ,

热评文章

评论:

2 条评论,访客:1 条,博主:1 条
  1. BanYuner
    BanYuner发布于: 

    用了这个功能之后,站点首页错位了,貌似不能识别WordPress中wp_is_mobile()函数

发表评论