踩坑后记:新手如何完美给wordpress搬家以及换域名教程

一转眼,我的小博客建立到现在,已经过去半个多月了,我也从刚入门的小小白,变成了现在稍微懂一点的小白。坑踩了很多,但是凭着我不怕“折腾”的精神,最终还是把坑给填上了,其中艰辛,只有我自己知道。

此前,博主的网站曾经出现两次宕机风波,这其中一次宕机的原因就是因为想给我的wordpress换一个域名,以及换一个vps。但是因为那是第一次,我对一切还是有点懵懂,也不懂在搬家之前最好先备份一下网站的数据库以及主程序。

结果搬家没搬明白,导致,我整个站点的数据全部丢失,幸亏当时我写的内容还不多,不过当时还是着急加恼火。所以那之后的几天,我都一直在研究到底应该怎么给wodpress完美的搬家以及换域名。

经过不懈的折腾和努力,以及爬了无数的帖子加不断的试验吧,我终于搞明白了如何完美的给wordpress搬家以及换域名。下面我就把我的方法给有缘人说一下:

1.只换域名不搬家

如果你只是想单纯的给自己的网站换一个域名的话,首先你需要做的就是,将新购买的域名解析到自己的服务器ip上,dns解析网站有很多,我这里就不一一列举了。如果还不会域名解析的同学,可以参考我这篇文章,传送门:如何利用lnmp搭建属于自己的博客

假设你现在已经完成了域名解析,那么可以执行下面的操作:

备份现在的wordpress主要程序,这个非常重要,执行下面的操作,其中的/home/wwwroot/代表你网站所在的根目录,请自行调整为自己的网站根目录位置:

cd /home/wwwroot/

执行tar打包命令,将现在的网站主程序打成一个压缩包,其中的xxxxx.com自行替换为自己的网站域名,如果已经是在root权限下,可以不用打sudo:

sudo tar -zcvf xxxxx.com.tar.gz xxxxxx.com

在当前文件夹下不用离开,执行mysqldump命令,备份网站的数据库,其中的xxxxx代表数据库名称,请自行替换为自己的数据库名称,也不要搞错”>”符号,尖角向右”>”是代表导出,一定不要搞错,执行完命令以后,输入数据库的root密码,然后稍等一会,数据库就打包成功了:

sudo mysqldump -uroot -p xxxxx > xxxx.sql

此时数据库以及网站程序都已经备份完成,我们需要删除现在的网站文件夹,其中的xxxxx.com替换成自己网站文件夹的名字:

sudo rm -rf xxxxx.com

如果执行完上面命令,不能删除文件夹,而是报xxxx.com/.user.ini错误的话,请执行下面的命令,没有报错,请忽略:

sudo chattr -i xxxxx.com/.user.ini

sudo rm -rf xxxxx.com

这个时候,原来网站的文件夹已经被删除掉了,我们需要重现添加一个host域名文件夹:执行下面的命令,如果已经是在root用户下,请忽略sudo su这句命令:

sudo su

lnmp vhost add

然后按照提示,一步一步重新创建新域名的文件夹,如果不太了解如何添加vhost的话,可以查看我这篇文章:如何利用lnmp搭建一个博客

新域名添加完毕以后,我们可以删除一下旧域名的nginx配置文件,这一步完全是因为强迫症,可以忽略:

进入到nginx配置文件夹:

cd /usr/local/nginx/conf/vhost

删除原来网站的nginx配置文件,xxxx代表自己的旧域名,请自行更换:

sudo rm xxxxx.com.conf

删除掉就网站的nginx配置文件以后,我们需要进入到网站的根目录,将之前打包的wordpress网页程序解压到新网站的目录下,执行下面代码,xxxx.com.tar.gz代表自己之前打包的网站程序名字,请自行更换,yyyyyy.com代表新网站的文件夹名称,请自行更换,-C的C是大写:

cd /home/wwwroot

sudo tar -zxvf xxxxx.com.tar.gz -C yyyyy.com

现在wordpress网页程序已经被我们解压到了新网站的文件夹下,但是,我们还需要执行下面的操作,将刚才解压出来的就网站文件夹的文件,全部移动到新网站文件夹下,我这么说可能难以让你理解,所以你直接跟着我的命令来执行就好,下面的xxxxx.com代表新网站的文件夹名称,请自行替换:

cd xxxxxx.com

将旧域名网站下的全部程序全部移动到新网站文件夹下,如果不执行这一步操作,我们过后是没办法进入到自己的博客网页的,下面的yyyyy.com代表旧域名文件夹的名称,请自行更换,以及不要忘记*后面的 .:

sudo mv yyyyy.com/* .

sudo rm -rf yyyyy.com

现在网站程序已经全部移动到新网站的文件夹下了,但是现在这个时候我们还是没办法用新域名登陆我们的wordpress的,因为现在无论是网站主程序还是数据库中所记录的域名还是使用之前的旧域名,我们需要用到wp-cli这个工具,来一键将旧域名替换成新域名。

在这里贴一下wp-cli工具作者github:wp-cli

使用这个工具更换域名是非常简单的,只要执行下面两部操作,首先将wp-cli下载下来,这句命令是完整的一句命令:

sudo curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

如果执行完上面命令,报错,提示类似于curl not found的话,证明你的vps没有安装curl,先安装一下,执行下面命令:

sudo apt install curl

等待安装完成以后,再执行上面那句安装wp-cli的命令,大概1-3s钟,你会看到下图中的工具名称:

wp-cli.phar就是这个工具了

下载完成以后,wp-cli还没有执行的权限,执行下面这句命令,给予wp-cli可执行权限:

sudo chmod +x wp-cli.phar

然后将wp-cli.phar移动到/usr/local/bin目录下,并修改名称为wp:

sudo mv wp -cli .phar /usr/local/bin/wp

现在wp工具已经安装完成,我们开始着手域名更换操作,进入现在的网站目录,其中的xxxxx.com替换为自己的网站目录名称:

cd /home/wwwroot/xxxxxx.com

然后执行wp-cli命令来把数据库中的旧域名替换为新域名,注意这句命令不要加sudo,其中的old domain代表现在的域名,new domain代表想要更换的域名:

wp search-replace ‘old domain’ ‘new domain’

大概5s左右,wp工具会自动替换掉所有旧域名,这个时候,我们就可以通过新域名来登陆到wordpress了。如果此时你发现还是没办法用新域名登陆的话,可以重启一下nginx和mysql,执行下面的命令:

sudo lnmp nginx restart

sudo lnmp mysql restart

如果执行完上面两句命令,还是没办法进入到网站的话,也不要慌,也许是新域名还没有解析过来,可以稍等个1-2个小时再次尝试一下。

2.换域名又搬家

如果你是服务器和域名全部都到期,需要又更换域名又搬家的话,其实也是很简单,只是需要比只换域名不搬家多执行几句命令。

首先需要在新服务器上搭建lnmp环境,执行下面三句命令:

screen -S lnmp

sudo su

wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

然后按照操作指示安装lnmp环境,如果你还不太会安装lnmp,可以查看我这篇文章:如何利用lnmp搭建一个博客

假设现在你在新服务器上已经搭建好了lnmp环境,那么就需要在新服务器上给新域名添加host,执行下面这句命令, 然后按照指引一步一步执行即可 :

sudo lnmp vhost

假设你现在已经在新服务器上给新域名添加了vhost,那么就可以备份wordpress主程序以及mysql数据库了,备份操作上面已经给出,这里我不在赘述,一切都备份好以后,我们需要将wordpress还有Mysql传输到新服务器上,这里我们使用scp命令,执行下面操作,请自行替换wordpress打包名称,以及mysql数据库名称:

sudo scp wordpress.tar.gz [email protected]新vpsip:/home

sudo scp mysql.sql [email protected]新vpsip:/home

执行完以上两个操作,wordpress程序还有mysql已经传输到了新vps的/home文件下,我们接下来就是在新vps上面将wordpress程序解压到新域名文件夹下,以及导入将数据库导入了。

解压wordpress程序到新域名文件夹下,自行替换下面的文件名:

cd /home

sudo tar -zxvf wordpress.tar.gz -C /home/wwwroot/新网站域名

cd /home/wwwroot/新网站域名

sudo mv 旧网站文件夹/* .

sudo rm -rf 旧网站文件夹

将数据库备份导入到现在的数据库中:

cd /home

sudo mysql -p -uroot 新数据库名称 < 数据库备份文件.sql

现在我们需要用wp-cli工具来替换数据库中的旧域名,我们在新vps上面安装wp-cli工具。安装方法上面已经给出,这里不在赘述,安装完成以后,执行下面命令,记住不要加sudo:

cd /home/wwwroot/新域名文件夹

wp search-replace ‘old domain’ ‘new domain’

sudo lnmp nginx restart

sudo lnmp mysql restart

执行完上面的操作,已经完成了全部的步骤,可以用新域名来登陆wordpress了。

3.只搬家不换域名

只搬家不换域名,就很简单了,方法和又搬家又换域名是一样的。只是我们不需要执行替换数据库中的这个步骤就可以了,在这里我就不赘述了。具体参照方法2.

4.写在后面

其实wordpress无论是搬家还是换域名,都是一件非常简单的事,我们一开始之所以觉得它难。主要还是因为不熟练造成的,按照我的步骤,多操作几遍,就会明白其中的道理了。

我也是一名小白,写的教程也许有不完美的地方。希望各位路过的大佬,可以多多留言批评,同时也给小站增加一点人气。你们的支持,就是我折腾的最大动力~

 

 

 

 

——本文章为Cattypapa原创,如需转载,请注明出处——

发表评论

电子邮件地址不会被公开。 必填项已用*标注