以前网站都是使用虚拟主机,搬家过程都是先关闭网站,备份数据,然后下载数据、附件、模板和其他修改过的文件到本地,之后在新的空间上安装程序,上传数据库文件,在网站后台进行恢复,之后上传附件、模板等。一般情况下数据库文件都不算大,但是附件目录可能有几个G,下载再上传会花费很长时间。

linux服务器使用ssh实现网站快速搬家操作步骤-冯金伟博客园

后来使用了linux的服务器,尝试了一下用SSH搬家,从一个云服务器搬到另一个服务器,由于是同一家IDC的同一区域的机房,传输速度上很快。不过这不是重点,重点是数据是直接传输的,不用到本地再上传,且是整个网站打包搬过去。这样可以极大的节省时间,而且出错的可能性比较小,推荐大家使用这种方法。

此方法在centos6.x/7.x系统  LNMP环境和宝塔面板搭建的环境下测试成功,其他系统和环境未测试过。

1、把新的VPS上安装与旧VPS类似的环境(最好是相同的环境nginx,php,mysql同样的版本,推荐使用宝塔面板),域名解析好,把目录查清楚(环境安装过程需要半个小时或一个小时,这个没办法省)。

2、把旧的网站程序和数据库传到新VPS上,这个过程是一步完成,包括压缩旧文件、传输、解压,输入一个命令就行了。

由于网站程序与数据库不在同一个目录,所以分两次操作。搬网站程序和附件的命令:

使用xshell登录上旧的服务器,进入网站所在目录,命令如下

# cd /www/web //进入目录

# tar czf - fengjunzi.com | ssh root@106.186.1.1 tar xzf - -C /www/web //把安装网站程序的zz文件夹转移到新的106.186.1.1的/www/web目录下

fengjunzi.com为网站https://www.fengjunzi.com/在旧服务器上的存放目录,106.186.1.1为新的服务器的ip地址,/www/web为新服务器上网站要存放的目录,这几处地方根据自己的情况替换即可。

上面的命令回车后会提示你输入新服务器的root密码,输入正确后就会开始传送文件,可以连上新服务器的FTP查看文件传输过程,传输时间视网站文件大小而定,一般不会超过半小时。

数据库一般不会太大,我的30万帖子15万会员的数据差不多230M,2分钟传完。

搬数据库的命令:(和搬文件的命令格式类似)

# cd /www/wdlinux/mysql-5.1.69/var //进入数据库目录  

# tar czf - fengjunzi | ssh root@106.186.1.1 tar xzf - -C /www/wdlinux/mysql-5.1.69/var //把名为test的数据库转移到106.186.1.1的/www/wdlinux/mysql-5.1.69/var目录下

/www/wdlinux/mysql-5.1.69/var为lnmp环境下mysql数据库的存放路径

fengjunzi.com为网站https://www.fengjunzi.com/在旧服务器上的数据库存放目录,106.186.1.1为新的服务器的ip地址, /www/wdlinux/mysql-5.1.69/var为新服务器上网站数据库要存放的目录,这几处地方根据自己的情况替换即可。

3、在新的VPS上创建网站、数据库、数据库用户名,就跟全新的VPS一样操作。操作完后,网站文件和数据表都在,如果域名也已生效的话,网站就可以访问了。任何地方包括图片、插件、cookies等都跟旧VPS上的网站一样。

这种搬家方法可以叫做整体搬家法,一次性把程序文件和数据库搬过去,跟普通的搬家法相比,速度快、操作简单、几乎不出错。以前搬家之后重新安装程序、重新装插件、重新上传图片、导入数据库等一系列繁琐操作,常常漏了这里那里,要花几天时间细细的检查。搬家完成后半个月依然还在忙碌着。

注意:该方法仅linux环境的服务器适用,虚拟空间是没办法这样操作的。