WordPress 优化加速:启用 Memcached 动态缓存数据库

Memcached 是一个高性能分布式的内存对象缓存系统, 通常被用于降低数据库加载压力以提高动态 web 应用的响应速度。

官网:http://www.memcached.org

实测环境:搬瓦工 CentOS 7 X64 + LNMP(php 7.2)+ WordPress 4.9

安装 Memcached

LNMP 一键包自带 Memcached 安装脚本,折腾起来很方便。进入 lnmp 解压后的目录,执行:

./addons.sh install memcached

可以根据自己需求选择 php-memcache 或 php-memcached 扩展,功能上 php-memcached 更强大一些。我是选择安装 php-memcached。

Starting Memcached... Starting memcached: done ====== Memcached install completed ====== Memcached installed successfully, enjoy it!

看到上面字样就安装成功了。运行下面命令

php -m | grep memcached

会输出 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 表示安装成功。

至此,VPS 系统环境已经支持 memcached 缓存。

自动检测 memcached 进程 不存在则重启进程

复制下面代码保存为 memcachedcheck.sh 文件,上传至 root 目录,执行 chmod +x memcachedcheck.sh

#!/bin/sh
#check memcached process and restart if down
DATE=`date -d "today" +"%Y-%m-%d-%H:%M"`
MM=`ps aux |grep "memcached" |grep "11211" |grep -v "grep" |wc -l`
#if语句判断进程是否存在,如果不存在,输出日志记录并重启memcached服务
if [ "$MM" == "0" ];
then
echo "$DATE The memcached is problem and restart" >> /root/memcached_check.logs
service memcached restart
fi

然后添加至 crontab 计划任务,每隔5分钟检测一次。

*/5 * * * * /root/sh/memcachedcheck.sh

WordPress 缓存配置

系统已经支持 memcached,WordPress 也要安装相应支持。

安装 wordpress-pecl-memcached-object-cache 插件,下载地址:https://github.com/tollmanz/wordpress-pecl-memcached-object-cache

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

注意:若安装的是 memcache,这里需要使用 WordPress 官网上号称 Memcached 的 object-cache.php 插件,并且它只支持 memcache,不支持 Memcached。两者不能混用,否则会出现 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');    // Admin 登录名称,自行修改
define('ADMIN_PASSWORD','password'); // Admin 登录密码,自行修改
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
//下面是定义memcached服务器,一般是单机部署,可注释掉一行,并将服务器地址根据实际修改,一般是127.0.0.1
$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // add more as an array
//$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array

然后将文件上传到网站私密目录,然后通过前台访问 memcache.php,输入上面的用户名和密码即可看到 memcached 状态。

上面两个文件如果下载不到,可以下载老杨备份文件

其他设置

如果 memcached 状态页面可以打开,但是里面没有Hits数据,可以刷新多几次 WordPress 博客页面,如果还是没有,说明 WordPress 并没有成功连接到 memcached,这时候可以在 wp-config.php 加入如下参数:

global $memcached_servers;
$memcached_servers = array(
array(
'127.0.0.1', // Memcached服务器IP
11211 // Memcached服务器端口
)
);

memcached 实际监听 IP 和端口,可以通过如下命令查看:

netstat -nutlp | grep memcache

如果调整 Memcached 最大占用内存大小?

CentOS 7 Memcached 配置路径一般是 /etc/init.d/memcached,修改其中 CACHESIZE 配置即可:

vi /etc/init.d/memcached

CACHESIZE=256 #单位M,默认256M,一般博客 64M 就绰绰有余。

修改完成重启一下服务:

systemctl daemon-reload
service memcached restart  #重启生效

手工安装可参考张戈博客详细教程:WordPress启用memcached动态缓存以及报错解决

除非注明,垃圾站文章均为网络收集,本文地址 https://cyhour.com/669/,转载时烦请以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!
🍄:Netflix 奈飞 YouTube 合租

换域名?改固定链接?

去年底注册了个短域名,虽然非主流,但是胜在够短,两字母,还没有溢价。一直寻思着把它转移到 Cloudflare,换到博客使用……一言难尽。 WordPress 修改固定链接? 以前听说 postname 更有利于 SEO,曾经试过人工翻译。后来嫌麻烦,干脆只用 /%post_id%/,后面 .html 伪静态后缀都不要了。前阵子…
浏览: 50 标签:  ,  ,  , 

WordPress 随机显示名人格言 + PHP 毒鸡汤

在 编程随想 博客看到个不错的功能——随机显示博主精选的名人格言,稍稍折腾,我也加上了这功能了(在首页随机显示我喜欢的句子)。 :razz: 网上(官网的是英文版的格言)有现成的插件。一个很简单的插件,其实可以集成到 functions.php 去。不过格言也存放在插件的php文件里面,集成到 functions.…
浏览: 90 标签:  ,  ,  , 

Gravatar 头像被墙及解决方案

Gravatar 头像真是一言难尽,时而正常时而抽风时而无法访问……就一个 Gravatar 头像,这有啥好强(现代通假字)的呢?(据说是被其它服务连累?) 解决办法 - 调用 ssl/cn 头像链接 历史解决办法:调用 ssl 头像链接——https还是没被墙的,而且速度还不错,直接调用这个最简单了。主题 functions.…
浏览: 99 标签:  ,  ,  ,  , 
浏览: 25 标签:  ,  ,  ,  , 

Comments:6

  1. 这缓存有问题啊,没处理好不如取消。我一进来就看到秦大叔的信息。ww4.sinaimg.cn/large/0060lm7Tly1fpob5fneibj309a088jrb.jpg

    2018.03.24 23:08 # 回复
    1楼
  2. = =、这个缓存还不错~我自己也在用~但是,感觉没啥大的变化。尴尬

    2018.03.24 23:35 # 回复
    2楼
  3. hi,博主,有没有听过docket容器安装lnmp,据说只要3分钟就能装好lnmp

    2018.04.15 12:38 # 回复
    3楼

发表留言

Vultr 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息