前一段时间部落遇到负载无故飙高的情况,因为是版本升级后出现的,于是各种折腾,就包括安装网上所有提到过的缓存插件,虽然最终确定是某一款原来的插件导致的,但是这过程中体验某些缓存还是有一定的用处,今天记录下WordPress启用memcached缓存的过程。在此之前,我也没搞懂memcached和memcache这两个的区别,后边搜索了下:
PHP有两个memcache客户端:php memcache和php memcached php memcache独立用php实现,是老客户端,从我们实践中已发现有多个问题,而且功能少,属性也可设置的少; http://pecl.php.net/package/memcache php memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached http://pecl.php.net/package/memcached
所以我还是部署安装memcached,除了他是更新的之外,因为我一般使用军哥LNMP一键包,安装memcached更加简单……
LNMP官方页面有安装方式:
进入lnmp解压后的目录,执行:
./addons.sh install memcached
接下来就是耐心等待,很快就安装完成,完成后不放心也可以看看加载是否成功(一般没问题,安装失败有报错的)
php -m | grep memcached
测试下缓存,将下面的代码保存为test.php,执行php -f test.php 输出100表示安装成功。
<?php $m = new Memcached(); $m->addServer( \'127.0.0.1\', 11211 ); $m->set( \'foo\', 100 ); echo $m->get( \'foo\' ) . \"\\n\";
上述完成后,环境方面支持就没有问题了。
###如果不是LNMP环境,那么按步骤安装memcached,我看了下还挺麻烦的~ ###
接下来我们开始在wordpress中安装插件,非常简单:
访问:https://github.com/tollmanz/wordpress-pecl-memcached-object-cache
下载并解压得到的 object-cache.php,上传到 wp-content 目录即可开启 memcached 缓存。
这里特别注意,放入的文件夹是wp-content中,不是插件目录!
这一步完成后,你的wordpress已经启用memcached缓存了,如果要确认下,查看下效果的话,可以下载官方探针:
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\'); // 登录用户名,自定 define(\'ADMIN_PASSWORD\',\'password\'); // 登录密码,自定 define(\'DATE_FORMAT\',\'Y/m/d H:i:s\'); define(\'GRAPH_SIZE\',200); define(\'MAX_ITEM_DUMP\',50); //下面是定义memcached服务器,一般我们是单机部署,所以注释掉一行,并将服务器地址根据实际修改 $MEMCACHE_SERVERS[] = \'127.0.0.1:11211\'; // add more as an array //$MEMCACHE_SERVERS[] = \'mymemcache-server2:11211\'; // add more as an array
修改后上传到网站目录中,传入任何一个可访问的目录即可(只是临时看看就删也可以就放根目录),然后访问这个文件,就可以看到效果了,如下图:
注意事项:如果网站迁移,请确保新的服务器环境已安装memcached,或者删除了插件文件,否则访问空白页,之前有次测试的时候,我就因为这个找了好久!