宝塔面板安装PHP扩展Redis,wordpress安装Redis插件,多个网站公用Redis时网站打不开。

最近我在服务器VPS上面安装了宝塔面板,并且在PHP扩展里面安装了Redis,并设置了密码,第一个网站yuming1用的是wordpress,网站后台插件也安装了Redis,并且已经连接成功。

但是当我往宝塔面板添加第二个wordpress网站的时候,网站后台同样安装了redis插件,但是两个网站却同时都打不开了,打不开以后,我直接把redis卸载,并且删除了object-cache.php文件,这时候虽然可以打开网站。但是第一个网站打开以后,点击网站里面的链接却自动跳转到了第二个网站。

后来经过我一番研究,发现问题是两个 WordPress 网站 共享 Redis 缓存空间 导致的「缓存污染」或「缓存混淆」,这是 Redis 缓存常见的误用问题,尤其在多站点环境下很容易踩坑。

两个网站共用 Redis 实例,但没有设置 不同的缓存前缀(key prefix)。所以第二个网站连接 Redis 后,和第一个网站用的是同一个 key 命名空间,缓存内容互相覆盖,导致:页面跳转到错误的网站;数据错乱;两个网站同时打不开(缓存崩溃或逻辑冲突)。

我们只需要为每个站点配置不同的 Redis 数据库编号,Redis 默认有 16 个数据库(编号 1~16),可供16个网站同时使用Redis。

如何让多个网站共用Redis?解决方法:

1、登录宝塔面板,左侧点击【软件商店】,PHP里面安装扩展,选择“redis缓存器,基于内存亦可持久化的Key-Value数据库”。

2、安装完成以后,刷新回到软件列表,软件安装列表里面会多个已安装的软件【Redis】,点击Redis后面的设置,性能调整,在requirepass后面设置任意密码,比如我设置XIA888。点击保存。然后点击服务,重启。

宝塔面板安装PHP扩展Redis,wordpress安装Redis插件,多个网站公用Redis时网站打不开。

3、修改两个网站的 wp-config.php,在宝塔面板里面点击:文件,进入yuming1里面,找到wp-config.php,双击打开编辑。在 /* That's all, stop editing! Happy publishing. */ 这一行上面添加以下内容:

// 👉 Redis 配置(第一个网站 yuming1.com)👇
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'XIA888');
define('WP_REDIS_DATABASE', 1); // 第一个网站使用 Redis 数据库 1
define('WP_REDIS_PREFIX', 'yu1_'); // 设置缓存前缀
// 👆 Redis 配置结束

同样第二个网站修改方法,进入宝塔面板文件,yuming2里面,找到wp-config.php,双击打开编辑。在 /* That's all, stop editing! Happy publishing. */ 这一行上面添加以下内容:

// 👉 Redis 配置(第二个网站 yuming2.com)👇
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'XIA888');
define('WP_REDIS_DATABASE', 2); // 第二个网站使用 Redis 数据库 2
define('WP_REDIS_PREFIX', 'yu2_'); // 设置缓存前缀
// 👆 Redis 配置结束

最终结果如下图所示:红色方块是我们复制添加进入的代码,代码要粘贴到/* That's all, stop editing! Happy publishing. */ 这一行上面。

宝塔面板安装PHP扩展Redis,wordpress安装Redis插件,多个网站公用Redis时网站打不开。

两个站点都设置好 wp-config.php,接下来我们去已安装软件里面重启一下PHP和Redis。

然后去两个wordpress网站后台安装插件:Redis Object Cache。

WordPress 后台 → 插件 → 安装插件 → 搜索“Redis Object Cache” → 安装 → 启用
启用缓存功能。

最后我们去wordpress插件里面,点击Redis Object Cache下面的设置,如下图:

此时秘钥前缀已经显示我们设置的yu1_,数据库显示的也是我们设置的1,另一个网站显示的秘钥前缀则是yu2_,数据库显示为2。此时我们的两个网站表示已经设置成功,可以正常访问。

宝塔面板安装PHP扩展Redis,wordpress安装Redis插件,多个网站公用Redis时网站打不开。

最后重要提醒:

每个网站用不同的 WP_REDIS_DATABASE 编号(一个 1,一个 2,之后可以3,4,5...)

每个网站用不同的 WP_REDIS_PREFIX 前缀,yu1_,yu2_

同一个 Redis 实例可以开16个数据库(编号 1~16)

一定不要两个网站共用默认的编号和前缀,否则就会冲突

Redis 的密码设置后可以防止外部访问,但多网站共享 Redis 实例时,一定要区分数据库编号或前缀;

避免修改 object-cache.php 文件,插件会自动生成;

推荐使用 Redis Object Cache 插件,而不是那些不知名的 Redis 插件;

最后,如果你的服务器上面网站超过了16个,可以和其他网站共用数据库,只修改不同的前缀就行了。一般如果是10个网站以内,建立单独的数据库比较逻辑清晰方便管理。

相关文章
十年网站建设SEO搜索引擎优化经验,专业代做网站。微信:xiaweirui QQ:360191360
  • 本文由 发表于 2025年8月1日 12:21:03
  • 转载请务必保留本文链接:https://www.aruibk.com/website/495.html