报错原因
重装服务器,或给 Redis 新增连接密码后,如果 WordPress 里的连接配置没有同步更新,就可能出现下面的报错:
Error establishing a Redis connection
Redis 已经要求密码认证,而 WordPress 仍在尝试无密码连接。需要把正确的连接密码补到 WordPress 配置中。

先恢复后台访问,确认具体错误
- 根据错误页面的提示,先备份,再暂时移走
wp-content/object-cache.php,让 WordPress 暂停使用这份对象缓存连接,恢复后台访问。 - 进入后台的 Redis Object Cache 页面,查看具体错误。如果看到下面的信息,说明连接尚未通过认证:
Redis is unreachable:
SELECTfailed: NOAUTH Authentication required.
这里的 NOAUTH Authentication required 表示需要认证。给 Redis 设置了密码,就要在 WordPress 端使用对应的密码。

在 wp-config.php 中填写密码
打开 wp-config.php,把下面的配置放在加载 wp-settings.php 的语句之前。如果已经定义过同名常量,修改原来的值,不要重复定义:
define('WP_REDIS_PASSWORD', '你的密码'); // 填写 Redis 的连接密码
保存后回到 Redis Object Cache 设置页,重新启用对象缓存,让插件恢复 object-cache.php,再确认连接状态。只移走缓存文件后刷新页面,并不等于已经恢复 Redis 缓存。
可选的连接与缓存配置
如果需要明确指定客户端、主机、数据库和缓存有效期,可以一起设置:
define('WP_REDIS_CLIENT', 'phpredis'); // 使用已安装的 PhpRedis(PECL)扩展
define('WP_REDIS_SCHEME', 'tcp'); // 使用 TCP 连接
define('WP_REDIS_HOST', '127.0.0.1'); // Redis 与 WordPress 位于同一台主机
define('WP_REDIS_PORT', 6379); // Redis 连接端口
define('WP_REDIS_DATABASE', 0); // 使用 0 号数据库
define('WP_REDIS_PREFIX', 'wp_'); // 缓存键前缀,多站共用时为各站设置不同值
define('WP_REDIS_MAXTTL', 86400); // 缓存键的最长有效期,单位为秒
WP_REDIS_CLIENT 使用当前文档中的 phpredis 名称;未安装该扩展时,可以省略这一行,让插件按已安装的客户端选择。127.0.0.1 适用于 Redis 和 WordPress 在同一主机的情况,远程部署需要填写实际可达的主机地址。
缓存前缀当前使用 WP_REDIS_PREFIX。旧配置中的 WP_CACHE_KEY_SALT 已被该选项替代。如果多个站点共用一个 Redis 实例,不要全部照抄 wp_,应为每个站点使用不同的前缀。数据库编号、端口和最长有效期也应按实际环境调整。

确认恢复
关键就是让两端的配置保持一致:Redis 开启了密码认证,WordPress 就要带上正确的密码。配置后确认后台连接正常、对象缓存已启用,再检查网站访问。

配置项说明可查看 Redis Object Cache 官方配置文档。













暂无评论内容