转载自:https://blog.wpjam.com/m/memcached-for-sites-in-same-host/
使用 WPJAM Basic 插件的用户,可能知道:WPJAM Basic 插件已经集成 Memcached 的功能,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下,就可以开启 Memcached 缓存。
但是在同个服务器安装了多个 WordPress 网站,如果同时将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下来同时开启 Memcached 缓存,可能会出现问题,访问一个网站会跳转到另外一个网站,数据会串了。这是怎么回事,怎么解决呢?
这是因为 object-cache.php 是使用 WordPress 的表前缀来($table_prefix)区分不同站点在内存中的缓存的。如果你在同个服务器多个 WordPress 网站的表前缀都相同,都是默认的 wp_,那么 object-cache.php 就无法区分是哪个站点了。
知道了问题,那么就非常好解决,有两个解决方法:
1. 修改表前缀,让不同的 WordPress 博客使用不同的表前缀。我开发了一个 WordPress 数据库表前缀修改器,一键生成修改数据库表前缀所需的SQL,让你在WordPress修改表前缀之后能够更加方便全站修改。
2. 如果修改表前缀不方便,我还提供了 WP_CACHE_KEY_SALT 这个缓存 key 盐值的常量,你只需要在不同站点的 wp-config.php 文件定义不同的 WP_CACHE_KEY_SALT 值即可。
比如两个站点分别定义为:
define('WP_CACHE_KEY_SALT', 'site1');
define('WP_CACHE_KEY_SALT', 'site2');
如果设置了还不行,可能你的 object-cache.php 不是最新版,那就下载一下最新版的 WPJAM Basic 插件,然后将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下。