Debian系统lnmp.sh1.6上安装memcached扩展

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

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

安装 Memcached

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

./addons.sh install memcached
···
可以根据自己需求选择 `php-memcache` 或 `php-memcached` 扩展,功能上 php-memcached 更强大一些。我是选择安装 **php-memcached**。
```bash
Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
Copy Memcached PHP Test file...
Restarting php-fpm......
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[....] Saving netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
# Warning: iptables-legacy tables present, use iptables-legacy-save to see them
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
# Warning: ip6tables-legacy tables present, use ip6tables-legacy-save to see them
done.
[....] Loading netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
done.
Starting Memcached...
Starting memcached:  done
====== Memcached install completed ======
Memcached installed successfully, enjoy it!

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

php -m | grep memcached

会输出 `memcached`

测试是否成功

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

原文:https://cyhour.com/669/

发表评论

four + 2 =