解决服务器上有多个 WordPress 网站时,启用 Redis 后数据串站
如果在一台服务器上安装了多个 WordPress 网站,我们为了优化性能,提升加载速度,需要在 PHP 开启 Redis,配合 WordPress 后台的 Redis Object Cache 插件进行网站加速。
但是当多个 WordPress 站点都开启 Redis 缓存后可能会出现串站的问题。
具体现象
- 在 A 网站上启用 Redis 后一切正常。
- 同时在 B 网站上启用后,B 网站出现白屏问题。
- 继续在其他网站上启用,有的出现白屏问题,有的出现文章列表串站的问题。
- 当尝试登录其它网站后台时,网站异常跳转至 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 之间的不同值。
如果修改完成后,数据串站问题仍然没有解决,可以尝试重新启用服务器。