本文最后更新于2024年8月21日,部分网盘链接偶尔抽风,下载地址如有失效,请在文章评论区留言反馈。
今天在两个站点同时启用Redis缓存后,发现访问第一个站,会直接跳转到第二个站,而且第二个站也各种异常。本来以为是宝塔的
https防窜站
功能异常造成的,可是关了也没用。思来想去可能是同时启用的两个站数据互串了,和以前两个站同时启用Memcached问题一样。所以今天就发一期教程,解决此类问题。
同台服务器上多个 WordPress 站点怎么同时使用 Memcached
同台服务器多个网站同时启用Memcached,访问一个网站会跳转到另外一个网站,就是数据互串了。
原因分析
这是因为 object-cache.php
是使用 WordPress 的表前缀($table_prefix
)来区分不同站点在内存中的缓存的。如果你在同个服务器多个 WordPress 网站的表前缀都相同,都是默认的 wp_
,那么 object-cache.php
就无法区分是哪个站点了。那么怎么解决呢?
解决对策
知道了问题,那么就非常好解决,有两个解决方法:
1. 修改表前缀,让不同的 WordPress 博客使用不同的表前缀。但是一般修改表前缀都涉及到数据库,很多小白都不会操作,包括我们也不会,
2. 如果修改表前缀不方便,我还提供了 WP_CACHE_KEY_SALT
这个缓存 key 盐值的常量,你只需要在不同站点的 wp-config.php 文件定义不同的 WP_CACHE_KEY_SALT
值即可。
比如两个站点分别定义为:
define('WP_CACHE_KEY_SALT', 'site1');
define('WP_CACHE_KEY_SALT', 'site2');
例如
修改完重启Memcached即可。
同台服务器上多个 WordPress 站点怎么同时使用Redis
服务器安装Redis扩展后,默认创建16个Redis数据库(序号0-15),WordPress插件Redis Object Cache中没有选择指定数据库序号的选项,只能使用Redis的第一个库。
一台服务器如果有多个WordPress站点并且都安装使用Redis对象缓存插件,就会导致其中一个站点的数据是另一个站点的数据。
解决对策
打开第二个站点的/wp-content/plugins/redis-cache/includes/object-cache.php
搜索:
database
,大概在第629行,把“0”改成1-15的任意数。
同样地,修改完重启Redis即可
如果Redis数据库中已有冲突数据无法进入后台。
可以进入服务器目录,把wp-content
下面的这个缓存文件object-cache.php
删掉,就可以恢复访问后台了。
现在再去启用插件就不会出问题了
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
一、本站文中资源为互联网公开资源,我站仅作收集整理;版权归原作者所有,仅作为个人学习、研究以及欣赏!如有涉及下载请24小时内删除;
二、本站分享的图片、资源、视频等,出镜模特均为成年女性正常写真内容,均不含有淫秽以及色情内容;
三、用户可通过签到得积分来获取所需要的资源,本站VIP为赞助服务,是您喜欢本站而产生的捐赠赞助支持行为,仅为维持服务器及人员的开支与维护
评论(0)