上周帮一个客户把WordPress站从阿里云搬到腾讯云,本以为半天搞定,结果折腾了一天半。不是技术多难,是坑太多,而且每个坑都长得不起眼,踩进去才知道疼。把过程记下来,给后面要搬家的人省点时间。
第一个坑:数据库编码。旧服务器用的MySQL 5.7,新服务器装了8.0。导出SQL的时候没注意字符集,导入新库后中文全变问号。解决办法:导出时加--default-character-set=utf8mb4,导入前先在新库建好同名数据库并设好utf8mb4编码。这一步错一次,后面全白费。
第二个坑:文件权限。旧服务器上wp-content/uploads目录的owner是www-data,我用root账号scp过去,上传到新服务器后owner变成了root。WordPress后台能访问,但上传图片报错「无法创建目录」。chmod和chown改一下就行,但第一次遇到会以为是别的问题。
第三个坑:wp-config.php里的数据库密码。新服务器的MySQL密码和旧服务器不一样,搬过来忘了改wp-config.php,直接白屏。错误日志里写的是「Error establishing a database connection」,但新手第一反应是「网站挂了」而不是「密码不对」。
第四个坑:域名DNS切换的TTL。我把A记录改了,但本地浏览器还是解析到旧IP,原因是旧DNS记录的TTL设了3600秒(1小时)。有些ISP的DNS缓存更久,可能要好几个小时才全部切换完。在这段时间里,旧服务器和新服务器都有人访问,用户在旧服务器上提交的表单数据,新服务器上看不到。解决办法:搬家前先把TTL调低到300秒,等24小时再切。
第五个坑:SSL证书。新服务器的宝塔面板上没装证书,域名切过来之后全站HTTPS报错。我在旧服务器上用的是Let's Encrypt,证书不能直接拷贝到新服务器用(绑定了私钥)。正确做法是到新服务器上重新申请一次证书,宝塔面板一键就行,但要等DNS完全切过来才能验证通过。
第六个坑:定时任务。旧服务器上用宝塔的计划任务跑wp-cron,搬过来之后忘了配。结果文章定时发布不执行、邮件通知不发、缓存插件的定时清理也不跑了。宝塔面板里加一条计划任务,URL模式填WordPress地址+/wp-cron.php,每5分钟一次。
整个流程总结下来就五步:旧服务器导出数据库+打包文件→新服务器导入数据库+解压文件→改wp-config.php→切DNS→验证+修权限+装证书+配cron。看起来简单,但每一步都有细节。建议第一次搬家先在测试环境走一遍,别直接在生产环境操作。
标签: WordPress搬家 服务器迁移 建站经验
还木有评论哦,快来抢沙发吧~