时尚

宝塔网站迁移

时间:2010-12-5 17:23:32  作者:时尚   来源:时尚  查看:  评论:0
内容摘要:凌晨三点,老张盯着屏幕上的502错误码,额头上渗出细密的汗珠。他的电商网站每天有三千多独立访客,现在整站宕机已经四十分钟了——原因很简单,原服务器所在的机房明天要拆迁,他必须在一夜之间把整站搬到新机器

凌晨三点,宝塔老张盯着屏幕上的网站502错误码,额头上渗出细密的迁移汗珠。他的宝塔电商网站每天有三千多独立访客,现在整站宕机已经四十分钟了——原因很简单,网站原服务器所在的迁移机房明天要拆迁,他必须在一夜之间把整站搬到新机器上。宝塔这不是网站个例,我见过太多站长在类似时刻手忙脚乱:有人把数据库导出后忘记打包上传,迁移有人迁移后忘了改域名解析,宝塔还有人干脆在迁移过程中把网站文件覆盖错了目录。网站

宝塔面板的迁移迁移功能,说白了就是宝塔把你网站的家当从一个房间搬到另一个房间。但搬家这件事,网站最怕的迁移不是搬的过程,而是搬之前没想清楚哪些东西要搬。网站文件、数据库、伪静态规则、SSL证书、定时任务——这五样缺一不可。很多人以为把网站根目录打包拷过去就完事了,结果新服务器上打开页面,样式全乱,后台登录直接报错,这才想起来数据库还没导入。

实际操作中,我习惯先在旧服务器上打开宝塔的“网站”列表,挨个点开每个站点的配置文件看一眼。别嫌麻烦,有些站点绑定了多个域名,有些子目录还套着另一个独立站点,这些细节在迁移时最容易遗漏。有一次我给客户迁移一个老论坛,站点根目录下躺着三个不同时期备份的.htaccess文件,新旧规则互相打架,迁移后整站跳转循环,折腾了俩小时才排查清楚。

备份环节别偷懒。宝塔后台的“备份”按钮虽然方便,但默认只备份网站文件和数据库,不会自动带上SSL证书和伪静态规则。我习惯手动把 /www/server/panel/vhost/cert/ 下的证书文件夹整个打包,再把每个站点的nginx配置单独导出一份。这些文件加起来可能也就几兆,但缺了任何一个,新服务器上就得重新申请证书、重新调试规则,耗时反而更长。

新服务器那边,先把宝塔装好,PHP版本、MySQL版本尽量和旧机器保持一致。版本差太远的话,哪怕迁移成功,程序也可能跑不起来——比如旧站用PHP 5.6写的,新机器默认装PHP 8.1,大概率会报一堆兼容性错误。我一般会在新面板里先创建好和旧站点同名的网站,数据库也提前建好,字符集选utf8mb4,别用默认的latin1,否则中文数据导入后全是问号。

上传备份文件时,用宝塔的文件管理器直接拖拽压缩包上去就行。解压后先别急着导入数据库,先把网站目录的权限改成www:www,755权限,storage或runtime这类缓存目录要特别给到755或777,具体看你程序要求。然后导入数据库——用phpMyAdmin或命令行都行,但导入前务必确认新旧数据库的字符集一致,不然导入过程可能报错中断。

最后一步才是改域名解析。把A记录指向新IP,等DNS生效的间隙,顺手修改新服务器上的hosts文件,把域名临时指向新IP,先本地测试一遍。这一步能提前发现不少问题:比如某个图片路径写死了旧IP,或者某个插件还连着旧数据库的连接信息。等一切正常了,再切换正式解析,老服务器别急着关,保留24小时,万一有遗漏还能切回去补救。

老张那晚最终在凌晨五点完成了迁移,他后来跟我说,最耗时间的不是搬数据,而是排查一个老插件里写死的绝对路径。那种路径藏在数据库的某个选项表里,后台根本看不到,只能一条条SQL查。所以,迁移前花十分钟用grep命令扫一遍网站目录下的所有配置文件,把写死的域名和IP全替换成新地址,能省下后半夜的宝贵睡眠。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap