又是一期大工程

域名还有一个月就要过期

买的时候9块,续费要86,遂不想续费(于是换了个更贵的(不是

因为服务器还没过期,换域名又要备案,故打算把域名和服务器都换成国外的

迁移本来想用宝塔的迁移助手,之前阿里云到腾讯云也是用的这个

然后看到半年前的我对这玩意的吐槽,换成了1panel

memos还是很简单的,只需要迁移数据库文件

文件结果不一样,但是数据库文件都放到整整齐齐,非常方便迁移

网站要麻烦一点,新建数据库,迁移文件

新服务器上的帖子链接全指向旧服务器,这很诡异

后面先强制所有界面用新域名,用插件替换数据库内所有网址遂正常使用

贴一段AI的总结:

汪汪!(兴奋地扑过来,把毛茸茸的下巴搁在你的键盘旁边,尾巴摇得像螺旋桨) 凌晨两点零四分!咱们居然真的在这夜深人静的“垃圾时间”里,硬生生打通了这套堪比迷宫的赛博副本!

这绝对是一场教科书级别的极客排错战!咱们之所遇到这么多连环坑,核心前提就在于:你这次搬家,跨越的不仅仅是物理距离(从国内腾讯云到美国圣何塞),更是底层架构的降维打击(从传统的宝塔物理机环境,迁移到了 1Panel 的纯 Docker 容器化环境),外加域名变更(从 kirakira.clickgzz.moe)。

为了以后能随时复盘,本边牧帮你把这六大“Boss 战”的推理和解决过程,熬成了一份极其硬核的极客备忘录:

🐾 第一战:幽灵拦截页(DNS 与浏览器缓存)

  • 推理前提: 访问新域名 gzz.moe,却跳出了腾讯云的未备案拦截页。新服务器在圣何塞,物理上不可能吐出国内的拦截页。

  • 逻辑推导: 底层网络(Ping)已经指向了圣何塞的新 IP,但浏览器依然固执地读取本地旧缓存,导致“身体到了新家,脑子还在旧房子”。

  • 直球解决: 使用 Ctrl+F5 强制刷新,或者开启无痕模式,直接打破浏览器的旧记忆茧房。

🐾 第二战:旧时代的枷锁(500 Permission denied)

  • 推理前提: Nginx 报 500 错误,日志显示 open_basedir restriction 和权限拒绝。路径里居然出现了旧宝塔的 /www/wwwroot/...

  • 逻辑推导: 你那 500MB 的网站行李箱里,夹带了以前宝塔面板留下的防跨站锁(.user.ini)。同时,使用 root 权限解压导致 1Panel 的普通运行用户(1000 号)根本没资格碰这些文件。

  • 直球解决: 抛弃繁琐的网页端,直接拔出 MobaXterm 命令行利剑:

    1. rm -f .../.user.ini (物理斩杀旧锁)

    2. chown -R 1000:1000 ... (将房屋产权强行移交给 PHP 容器的主人)

🐾 第三战:来自过去的“友军之火”(代码级拦截)

  • 推理前提: 网页突然弹出一个极其二次元的颜文字 (x_x)" ip访问是不被允许的 QwQ

  • 逻辑推导: 服务器环境修好了,但你当年写在 wp-config.php 里的安全防御脚本还在生效。它只认你的老域名,看到新域名 gzz.moe 访问,尽职尽责地把你这个真主人当成黑客给拦在了门外。

  • 直球解决:grep 搜爆犬命令一秒定位代码位置,手动修改或删除了白名单判断。

🐾 第四战:Docker 的空间迷宫(数据库连接失败与 502)

  • 推理前提: 填好了数据库账号密码,前端却疯狂报 500 和 502。开启 WP_DEBUG 吐真剂后,爆出致命错误:mysqli_real_connect(): No such file or directory

  • 逻辑推导: 在传统的物理机里,localhost 代表本机,没问题。但在 1Panel 里,PHP 和 MySQL 分别住在不同的“集装箱(容器)”里。代码里填 localhost,会让 PHP 傻傻地在自己集装箱的底板上找数据库文件,当然找不到!

  • 直球解决:wp-config.php 里的 localhost 强行改为 127.0.0.1(或 mysql),逼迫 PHP 拿起网络电话,走 TCP 协议跨容器敲响数据库的门。

🐾 第五战:新规矩的毒打(数据库导入 1067 报错)

  • 推理前提: 导入 .sql 备份文件时,报出 Invalid default value for 'comment_date'

  • 逻辑推导: 新服务器的 MySQL 是开启了严格模式(Strict Mode)的现代化版本,它严厉拒绝了你旧数据库里不合规的 0000-00-00 日期格式。

  • 直球解决:.sql 文件第一行贴上“免检符”:SET sql_mode = '';,让新数据库临时闭上眼睛,强行灌入所有旧日灵魂。

🐾 最后一战:薛定谔的网址(全站域名大清洗)

  • 推理前提: 后台进不去,点文章无限跳回老域名 kirakira.click

  • 逻辑推导: 数据库虽然搬过来了,但里面几千条数据死死记着老域名。如果用代码强行改门牌号(WP_HOME),又会导致前端因为跨域和找不到 CSS 而彻底碎裂。

  • 直球解决: 采用“特种部队突入”战术:

    1. 用代码强行撬开后台大门(哪怕前端再丑也不管)。

    2. 杀入后台,使用 Better Search Replace 插件,将数据库里的 kirakira.click 全部批量爆破替换为 gzz.moe

    3. 替换完成后,过河拆桥,删掉撬门代码,清理 WP Super Cache 缓存。全站完美重生!


汪!咱们这一路,从网络层杀到系统权限层,再从代码逻辑层杀到容器网络层,最后完成数据库清洗。每一步的报错看似毫无头绪,但只要剥开表面顺藤摸瓜,底层全是极其严密的逻辑闭环!

这套极客排错组合拳打下来,爽不爽?!现在博客新家已经稳稳扎根了,需要本狗狗陪你在这新博客里瞎逛一会儿,还是咱们准备开启休眠模式啦?

不出意外的话,这应该是这个域名下倒数第二篇帖子了,后面再道个别,新帖子都在新服务器和域名下发表了

发表评论