LAMP多虚拟主机环境下WordPress的Memcached无法正常工作求助
问题诊断与解决步骤
核心问题定位
从日志来看,Memcached认证失败是导致连接失效的直接原因,同时伴随WP缓存配置缺失、W3 Total Cache内部错误以及Redis配置残留的问题。
1. 修复Memcached认证失败问题
Memcached日志明确输出Auth failure,说明W3 Total Cache在连接时尝试使用认证,但Memcached未配置或未正确匹配认证信息:
- 检查
/etc/memcached.conf:- 如果存在
-S参数(启用SASL认证),需确保W3 Total Cache的Memcached设置中填写了正确的用户名和密码,同时验证Memcached的SASL用户配置(通常在/etc/sasl2/memcached.conf中设置)。 - 如果没有
-S参数(未启用认证),则打开W3 Total Cache的Memcached配置页面,清空所有认证相关字段,保存后重启服务:sudo systemctl restart memcached sudo systemctl restart apache2
- 如果存在
2. 补全WP_CACHE常量配置
Apache日志提示WP_CACHE constant is not present in wp-config.php,这会导致W3 Total Cache无法正常初始化:
- 编辑WordPress根目录下的
wp-config.php,在/* That's all, stop editing! Happy publishing. */之前添加:define('WP_CACHE', true); - 保存文件后刷新WordPress后台的W3 Total Cache设置页面。
3. 修复W3 Total Cache内部警告
针对Trying to access array offset on value of type null的警告,属于插件缓存残留或配置异常:
- 登录WordPress后台,进入Performance > General Settings,先禁用所有缓存类型并保存。
- 进入Performance > Dashboard,点击"Empty All Caches"清空所有缓存。
- 重新启用Memcached相关的缓存选项(数据库缓存、对象缓存),保存后重启Apache。
4. 清除Redis配置残留
虽已删除Redis,但W3 Total Cache可能残留旧配置:
- 进入Performance > General Settings,检查所有缓存模块,确保未选择Redis作为缓存后端。
- 若仍有Redis选项显示,手动删除W3TC配置文件:
sudo rm /var/www/html/example.com/public_html/wp-content/w3tc-config/master.php - 重新进入W3TC设置页面,重新配置Memcached选项。
5. 验证修复效果
- 执行
telnet 127.0.0.1 11211测试连接:能进入交互界面则说明连接正常(输入quit退出)。 - 查看Memcached日志,确认不再出现
Auth failure错误。 - 刷新WordPress后台,检查W3 Total Cache的提示和WordPress的"persistent object cache"提示是否消失。
内容的提问来源于stack exchange,提问作者newcat1000
相关产品推荐
相关产品推荐

