在测试站登录后台,线上后台立刻退出,再登线上测试站又掉,来回几次以为账号被盗,看了 cookie 才发现两边同名同盐。乍看像缓存或者权限的锅,追下去往往不是。
wp config shuffle-salts --path=/var/www/test # wp-config.php 里确认 COOKIE_DOMAIN 与线上不同
追下去是这么回事:测试站的 wp-config 直接从生产复制,AUTH_KEY 和登录 cookie 常量一模一样,两个站又都在同一个父域下,cookie 互相覆盖。cookie 名也没区分。
「AUTH_KEY 复用」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。
具体做法是,用命令给测试站重新生成一套密钥;两个环境使用不同的 COOKIEHASH,避免 cookie 名撞车;测试站尽量放在独立子域,不要和主站共用父域;改完清一次浏览器 cookie 再登录。
验收就看一点,两个环境可以同时登录,互不踢下线,浏览器里能看到两组不同名字的 cookie。
