同台服务器上多个 WordPress 站点如何使用同个 Memcached?

前面我们介绍了「使用 Memcached 内存缓存来实现 WordPress 站点秒开」,很多用户都开始使用 Memcached 来提高 WordPress 站点速度,但是使用的时候碰到第一个或者说最多的问题就是,同台服务器上多个 WordPress 网站怎么同时使用 Memcached?

站点间数据互串

如果同时将 WPJAM Basic 插件 template 目录下的 object-cache.php 文件复制到同个服务器上多个 WordPress 站点的 wp-content 目录下来同时开启 Memcached 缓存,可能会出现这样的问题:

访问一个网站会跳转到另外一个网站,也就是说数据会串了。

这是怎么回事呢?这是因为 object-cache.php 默认是使用 WordPress 的表前缀($table_prefix区分不同站点在内存中的缓存的

如果你在同个服务器多个 WordPress 网站的表前缀都相同,都是默认的 wp_,那么 object-cache.php 就无法区分是哪个站点了。

那么怎么解决呢?

怎么同时使用 Memcached

定位了问题,那么就非常好解决,有两个解决方法:

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 目录下。

如何设置 Memcache 服务器地址

此外还有一些用户服务器的设置,他们的 Memcached 的服务器地址不是默认的 127.0.0.1,或者它们使用的云服务器的 Memcached 服务,很多聪明的同学会自己修改 object-cache.php 中的 Memcached 服务器地址。

其实不用那么麻烦 WPJAM Basic 提供的 object-cache.php 支持自定义服务器地址的, 只要在 wp-config.php 文件填下如下代码,将相应的服务器地址和端口改成自己的即可:

global $memcached_servers;

$memcached_servers	= [
	[
		'127.0.0.1', // Memcached 服务器地址
		11211        // Memcached 服务器端口
	]
];

最后,关于在 WordPress 中使用 Memcached:

1. 使用 Memcached 内存缓存来实现 WordPress 站点秒开

2. Memcached 和 Redis 有什么区别,做缓存 WordPress 用哪个好?

3. WordPress 是如何缓存的?对象缓存(Object Cache)详细介绍和使用!


WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic 之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可。


©我爱水煮鱼,本站推荐使用的主机:阿里云,国外主机建议使用BlueHost

本站长期承接 WordPress 优化建站业务,请联系微信:「chenduopapa」。