如何用 SSH 搬家 (plesk cpanel 互搞)

一般玩 WordPress 的要清楚一些概念

WordPress 包含

1.是官网下载过来的压缩包解压缩出来的一堆 PHP 文件

2.是用户上传的文件一般在 wp-content/upload/ 里

3.是插件、主题在 wp-content/themes/ wp-content/plugins/ 目录里

4.是用户产生的文字啊配置啊在 MYSQL 数据库里

MYSQL 数据库和 FTP 上去所看到的一堆文件(程序,上传的文件,主题,插件等)是分开的

而 WordPress 通过 wp-config.php 来连接 PHP 和 MYSQL 实现你产生的数据保存到数据库,以及从数据库里取出文章留言什么的给你看

所以我们备份的时候需要备份2个部分

1. 硬盘里自己目录下的所有文件 (程序,上传的文件,主题,插件等)

2. 数据库

一般备份的步骤如下

1.导出数据库到自己的目录下(这样他们就融为一体了)

2.打包整个目录(包含导出的数据库以及其他所有文件)

3.登录新的服务器,并获取压缩包,然后解压缩

4.把解压缩出来的数据库文件导入新服务器的 MYSQL 数据库里

5.修改wp-config.php 把数据库链接信息修改为新的服务器上的数据库信息

那么我们就开始吧

今天的例子是 Plesk 到 CPanel ,当然你也可以举一反三俗 P2C C2C P2C C2C 什么的
(一般P2P或C2C都有他们自己搬家工具,不用这么折腾,除非耍帅)

关于 MYSQL 数据库

1.数据库名 例子:bigcat_db

2.数据库用户名 例子:bigcat

3.数据库密码 例子:12345

具备这仨就可以搞定数据库了

关于 Plesk

用户home目录,简单说 FTP 登录上去看到的那一堆里有个叫 httpdocs 的,就是对应网站,例子:ooxx.me 的根目录
httpdocs/av.png 文件对应的URL就是 http://bigc.at/av.png

关于 CPanel

用户home目录,简单说 FTP 登录上去看到的那一堆里有个叫 public_html 的,就是对应网站,例子:ooxx.me 的根目录
public_html/av.png 文件对应的URL就是 http://bigc.at/av.png

综上所忽悠,我们需要做的是

1.导出数据库在 httpdocs 目录里 打包整个目录

2.把压缩包整到public_html目录里解压缩导入数据库

下面是每一步的截图(可能没有图)

登录老服务器

用终端(MAC/Linux

ssh bigcat@ooxx.me
注意:linux 输密码不显示星号避免暴露位数,请自重,打完回车即可

客户端 SecureCRT (windows)

SSH服务器地址ooxx.me

端口:22

用户名bigcat

登录成功会提示
bash-3.2$
确认下我在哪里就输入
pwd
会提示
/var/www/vhosts/ooxx.me
要看看当前目录有什么文件就输入
ls -la
会在一堆列表里看到有httpdocs
那么我们就进入这个目录,输入
cd httpdocs
再 pwd 一下,提示
/var/www/vhosts/ooxx.me/httpdocs
果然已经进入了
继续
ls -la
可以看到出来的一堆,就是FTP里上传的所有文件了

OK,这会儿要导出数据库
输入
mysqldump -u bigcat -p bigcat_db > ooxx.sql
回车输入数据库密码
如没啥提示就是导出成功了
ls -la
一下应该能看到多出来的 ooxx.sql 文件,即我们导出的数据库

接下去我们要打包
输入
tar -czf ooxx.tar.gz * .[!.]*
如果你没有.开头的文件例如 .htaccess
可能会提示
tar: .[!]*: Cannot stat: No such file or directory
不用管就是
这会儿
ls -la
一下应该可以找到 ooxx.tar.gz 这个压缩包了

老服务器就到此为止了
接下去登录新服务器
新建一个ssh链接
用新服务器的SSH帐号登录
登录后
cd public_html
切换目录从用户home目录到网站根目录
获取老服务器的文件
wget http://bigc.at/ooxx.tar.gz
会有个拉轰的文本进度条,速度一般都是MB/s
解压缩
tar -xzf ooxx.tar.gz
导入数据库
mysql -u bigcat -p bigcat_db < ooxx.sql
注意:是新服务器的数据库信息,没有的话去 CPanel 里新建一个
没啥提示就是成功了
再注意:如果新老数据库信息不一致,需要更新 wp-config.php

尾声
安全问题,请删除导出的数据库文件 ooxx.sql 和 ooxx.tar.gz
删除是 rm 文件名
例如
rm ooxx*
因为 wp-config.php 里的密码是明文的
提醒:这种明文密码建议千万别和自己其他密码一样

一般这会儿就可以去域名商网站更改 A Record 为新服务器的 IP,等生效后即可
不一般的同学会先配 HOST 看看,确保没问题了再改域名IP
那 HOST 是个什么东西我就下次写了

有啥看不懂的请留言,我更新
搬家 DIY 的好处是一来速度快,二来命令行耍帅

文中涉及一些命令可以参考 SSH 入门教程(常用命令)

31 评论

添加您的 →

这方法很方便哈。看大猫在用IntelliJ IDEA最近我也喜欢上了哈。有机会给搞个入门教程呀什么的哈。

[…] 脑子里盘算如何才能省去如此多的麻烦,想到了不会用的SSH,就搜索到了过去常去的大猫意淫网的SSH搬家篇,很实用,一步一步过去就OK了。讲下要避免的情况,.htaccess文件最好备份到本地后删除主机上的,两台主机用相同的该文件可能会出现问题。 […]

SSH搬家,看样子是方便啊,只可惜没机会体验个一把,当然最好也不要体验,呵呵,长期驻扎下去。上次的搬家真是多谢大猫了。

不需要密码验证之类的,这么轻易就可以用wget下载到主机上的文档?那wp-config.php之类的文件不是毫无安全性可言了?

@Yarkee, 浏览器看到啥,wget也能get到啥,php这种后台语言的源码不会直接暴露的,都是运行结果

啊,我立即在自己的主机上试了试,原来像wp-config.php这样的配置文件是无法被wget的,幸好幸好。

😆 ,很不错,但是有没有从没有SSH的服务器把网站快速搬迁到有SSH的服务器去呢?

发表回复