如果在一台服务器上安装了多个 WordPress 网站,我们为了优化性能,提升加载速度,需要在 PHP 开启 Redis,配合 WordPress 后台的 Redis Object Cache 插件进行网站加速。

但是当多个 WordPress 站点都开启 Redis 缓存后可能会出现串站的问题。

具体现象:

  1. 在 A 网站上启用 Redis 后一切正常。
  2. 同时在 B 网站上启用后,B 网站出现白屏问题。
  3. 继续在其他网站上启用,有的出现白屏问题,有的出现文章列表串站的问题。
  4. 当尝试登录其它网站后台时,网站异常跳转至 A 网站登录地址。

解决方案:

方法一:安装 WordPress 时给每个网站设置不同的数据库表前缀。

在安装 WordPress 时,填写数据库凭据信息时,“Table Prefix” 项默认都为 wp\_,将其设置为一个唯一的值,这样就可以避免在启用 Redis 时,出现网站数据串站和白屏问题。

如果大家是新安装的 WordPress 网站,建议将每个网站的表前缀设置为一个唯一的值。

如果服务器上已安装了多个网站,并且数据库表前缀都是相同的就要采用以下方法。

方法二:为每个网站定义 WP_CACHE_KEY_SALT

在每个 WordPress 网站的根目录下,都有 wp-config.php 核心配置文件。我们可以在该文件中为每个网站设置一个 WP_CACHE_KEY_SALT 值。这样,就可以避免在多个网站启用 Redis 后,出现数据串站或者异常跳转问题。

define('WP_CACHE_KEY_SALT', 'yourdomain.com');

yourdomain.com 替换成每个网站的域名,然后把上面的代码添加到下面这行注释的上方。

/* That's all, stop editing! Happy publishing. */

方法三:修改 Redis Object Cache 缓存插件配置文件

WordPress 网站一般使用 Redis Object Cache 插件来管理 Redis 对象缓存。该插件的配置文件位置如下:

/wp-content/plugins/redis-cache/includes/object-cache.php

打开该配置文件后,找到 ‘database’ => 0 这个字段。默认情况下,每个网站定义的 ‘database’ 的值都是 0 ,我们可以为每个网站配置 0-15 之间的不同值。

如果修改完成后,数据串站问题仍然没有解决,可以尝试重新启用服务器。