Via @CodeLast
本文的前提条件:你对你的 WordPress 站点服务器有控制权,例如,你使用的是 VPS 搭建的 WordPress 站点,而不是虚拟主机。如果不符合条件就不用往下看了,因为后面的很多操作是需要 root 权限来安装、配置软件的。另外,我使用的是 32 位的 Linux 系统,如果你是 64 位的系统,可能有些许不一样,或者出现一些文中没有遇到的问题,请注意。
如果你的 WordPress 站点访问量很大,那么 VPS 负载可能就很高,而这其中,可能有很大一部分就是 MySQL 的负载——它要将大量内容读取出来,并返回给访客。其实这部分工作可以通过缓存来提高性能,Memcached 就是这样一个软件,可以帮助我们实现这一点。
Free & open source, high-performance, distributed memory object caching system.
说得直白简单一点,它就是把最常访问的那些内容缓存在内存中,有新访客到来的时候,先从内存中找,找到了就直接返回,否则再去查数据库,这样就极大地提高了性能。那么,在 WordPress 中,我们怎么使用 memcached 呢?这不是仅仅安装 memcached 软件就可以做到的,还要和 PHP 结合起来,所以涉及到好几个部分,下面分别阐述:
安装 Memcached
首先我们要从Memcached的官方网站下载一个稳定版,例如,我下载的是 1.4.17 版,然后准备安装它。但 Memcached 的根基是一个网络开发库 libevent,所以,你要先安装 libevent。我下载的是 2.0.21(稳定版),解压出来,然后编译安装:
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure --prefix=/usr/local/libevent make make install
然后下载编译安装 Memcached:
wgethttp://www.memcached.org/files/memcached-1.4.17.tar.gz tar zxvf memcached-1.4.17.tar.gz cd memcached-1.4.17 ./configure --with-libevent=/usr/local/libevent/ --prefix=/usr/local/memcached make make install
注意我指定了 libevent 的安装目录,并且把 Memcached 安装到了 /usr/local/memcached 目录下。
启动 Memcached
安装了 Memcached 软件之后,我们就要启动它了:
cd /usr/local/memcached/bin/ ./memcached -d -m 256 -u root -t 64 -r
-d 表示以守护进程的方式启动 memcached 程序,-m 256 表示最大可使用 256M 的内存,-t 64 表示使用 64 个线程,-r 表示最大化 core 文件的限制。
这样启动之后,memcached 就开始在默认端口 11211 上监听了,现在再看看进程中是否已经有了 memcached:
ps -ef | grep memcached
最后再把它加入开机启动项,编辑 /etc/rc.local 文件,添加一句:
/usr/local/memcached/bin/memcached -d -m 256 -u root -t 64 -r
安装 PHP Memcached 扩展
为了能让 WordPress 用上我们刚安装的 Memcached,需要先为 PHP 安装一个 Memcached 扩展。到PECL去下载一个稳定版的 Memcached 扩展,执行:
wgethttp://pecl.php.net/get/memcache-2.2.7.tgz tar zxf memcache-2.2.7.tgz cd memcache-2.2.7
如果你没这样装过 PHP 扩展的话,你会很奇怪地发现,解压出来的目录下竟然没有 configure 文件!没有 configure 文件如何能生成 Makefile,如何能编译安装呢?
这个时候,我们需要用 PHP 安装时附带的 phpize 程序来帮助我们生成 configure:
cd memcache-2.2.7 /usr/local/php/bin/phpize
注意,我的 PHP 是安装在 /usr/local/php 目录下的,如果你的目录不同,请作相应的修改。顺利的话,就会发现生成了 configure 文件;如果遇到了以下错误:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
那么,就需要安装以下两个 package(如果是 Ubuntu,就将 yum install 替换为 apt-get install):
yum install m4 yum install autoconf
执行以下命令安装:
./configure --with-php-config=/usr/local/php/bin/php-config make make install
提示Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ 即为安装成功。
然后修改你的 php.ini 配置文件,在最后添加:
[memcache] extension=memcache.so
最后重启你的 web service,如果你用的是 nginx,那么需要重启 php-fpm 和 nginx:
/etc/init.d/php-fpm restart /etc/init.d/nginx restart
安装 / 配置 WordPress Memcached 插件
WordPress 早为 Memcached 内存缓存提供了插件,可以直接至官方下载。
Memcached Object Cache:http://downloads.wordpress.org/plugin/memcached.2.0.2.zip
将下载的:object-cache.php 复制到 wp-content,注意不是 wp-content/plugins/。 WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。若你使用的是 WP Super Cache,可以在安装 Memcached Object Cache 后至 Super Cache 设置页面开启
Memcached 缓存查询数据还是很给力
@生活有意思 =w=小网站用这个效果一般
@WP酷 小网站其实这些全不用折腾~哈哈
先收藏了,有需要的时候在使用。
最后一步 使用对象缓存系统来存储缓存文件。 (实验室功能) 这个怎么没有了呢?
已经启用了,但是选用 使用对象缓存系统来存储缓存文件。 (实验室功能),之后,感觉速度没有想象中的快。
嗯,小站的话,暂时不需要,还是非常感谢分享这么多技术文章,感谢!
使用wp super cache的这个实验室功能,后台指定多长时间清理一次缓存一般来说。3W+日访问量。