同服务器多WordPress站点Memcached配置方案
[一、Memcached 是什么?]
[二、WordPress 和 Memcached]
[三、WordPress如何启用Memcached]
[四、同服WP多站配置Memcached]
[方法1:配置wp-config.php]
[方法2:配置object-cache.php]
一、Memcached 是什么?
Memcached 是一种高性能的分布式内存对象缓存系统。在动态应用,Memcached 既能提高访问的速度,同时还减低了数据库的负载。
二、WordPress 和 Memcached
WordPress 默认支持 Object Cache,WordPress 实现 Memcached 即使用 Memcached 把 WordPress 的 Object Cache 写入内存中,下次直接从内存读取,相比直接从数据库去读取数据,或者从 Object Cache 数据存到文件,再从硬盘中读取,Memcached 有很大的速度优势。
三、WordPress如何启用Memcached
以下以宝塔面板为例,做简要说明。
宝塔面板 => 软件商店(左侧选项卡) => 已安装(列表选项卡) => PHP7.x设置 =>安装扩展(选项卡) => 右侧列表中安装:
opcache 缓存器,用于加速PHP脚本!
memcached 缓存器 ,比memcache支持更多高级功能。
返回,再到应用商店中安装:“Memcached 1.6.9,官方,Memcached 是一个高性能的分布式内存对象缓存系统。”这个软件。
WordPress后台安装插件“WPJAM Basic”,安装后暂不启用,先做以下步骤再启用插件。
也可手动下载安装:步骤:下载:WPJAM Basic,上传 wpjam-basic 目录 到 /wp-content/plugins/ 目录
将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下。
激活插件,开始设置使用。
WPJAM Basic插件安装步骤也可参考其官方网站:
WordPress 一键式全站优化插件:WPJAM-Basic - WordPress 果酱
https://blog.wpjam.com/project/wpjam-basic/
四、同服WP多站配置Memcached
注意:多个wordpress网站都启用Memcached缓存的话,如果你的数据库前缀一样(比如都是默认的WP_),很容易出现冲突,不过除了更换数据库前缀,还是有其他解决办法的!有多站点的话,如果不用这种办法,可能会导致打开A域名看到B域名的现象。
方法1:配置wp-config.php
1 define('WP_DEBUG', false);
在其下一行添加
1 define('WP_CACHE_KEY_SALT', 'rich-note.com');
添加上去,wordpress Memcached缓存插件直接上传到wp-content目录即可,非常愉快的解决问题!
方法2:配置object-cache.php
在WordPress中,配合Memcached的缓存插件object-cache,object-cache.php文件里面有一个WP_CACHE_KEY_SALT的定义,初始是没有什么设置的,就默认,所以导致了缓存冲突,知道了原因,那么就容易解决了,打开object-cache.php,在第15行、16行找到
1 if ( !defined( 'WP_CACHE_KEY_SALT' ) )
2 define( 'WP_CACHE_KEY_SALT', '' );
将其改为
1 define('WP_CACHE_KEY_SALT', 'rich-note.com');
其中的’rich-note.com’就是您的网站域名,当然也可以更改为其他的,只要让每个站点的内容不一样就可以了,重启Memcached就可以了。
以上两种方法只用其中一种即可。
实测:用PHP探针做检测。阿里云主机,512MB内存,运行了12个WordPress站点,在未开启WordPress Memcached的时,内存使用率在94%左右。开启后,内存使用率在85%左右。
维护
有些时候需要情况memcahed重启,比如安装插件或者网页需要强制刷新的时候,只需要重启memcached就可以了。
1 service memcached restart
也可以用http://www.junopen.com/memadmin/ 这里的工具管理和监控。