WordPress跨服务器搬迁记录
WordPress跨服务器搬迁记录

WordPress跨服务器搬迁记录

由于原阿里云服务器马上到期,又趁活动买了年费的更划算的服务器,所以需要搬迁下部署的wordpress数据,中间踩到了坑,记录下

先尝试了网上找的插件搬迁,很坑爹,失败了,如果想要节省时间建议直接看第二种搬迁方式

下面开始正文:

搬迁之前准备工作

1,更改dns解析

去阿里云控制台,更改dns解析,把原来的解析记录删除,解析到新的服务器地址,最好解析两个,一个@一个www:

稍等两分钟生效

2,放行新服务器的端口

放行两个:443和80,分别对应https和http:

搬迁方式1——使用wp插件(失败,坑爹的插件)

看到网上说可以用All-in-One WP Migration插件,试了下,失败了,这里做个记录,方便读者避雷:

1,导出原站数据

首先,在原站点安装插件All-in-One WP Migration,然后启用,点击“导出到”:

下载,时间可能有点久,决定于你的云服务器带宽,下载完后,一定记得把下载的文件备份一下,放在windows桌面上暂时。

2,新的服务器安装wordpress和插件

我这里使用的是宝塔面板,先安装宝塔面板,然后使用一键部署安装wordpress,安装时候域名填写你刚解析到新服务器域名

然后进入wordpress配置页

这个时候浏览器可能会有缓存,也就是说你输入域名回车后跳到原服务器,这时候可以清除下浏览器缓存,但是一定要记住,把之前下载的wp备份文件备份一下,因为一旦清除浏览历史,比如清除过去7天,会把下载的文件也顺便清除,被坑惨了

如果没备份,导致下载的文件被删除,那么唯一的办法就是把域名重新解析回原来的服务器,然后从步骤1重新开始

另外因为要刷新dns服务器缓存,所以这个时间可能比较久,耐心等待下

配置好后,进入新站点,安装插件All-in-One WP Migration并启用,然后点击“导入”,选择你刚下载的备份数据,上传

这里会提示文件太大,请使用他们的插件,点进去一看收费$68一年,还是算了,可以去插件市场下载WP Maximum Upload

启用后设置最大上传大小为512m,然后就可以看到可以上传了

3,出现问题

点击上传后,又又又出问题了,进度条一直0%

然后点击停止导入,重新上传一下,又变成了0.2%:

好,那就耐心等待一下

等待一会还是不动,上网搜说这是这个插件的bug

4,尝试FTP上传

所以转换思路,直接将文件通过ftp上传到对应的文件夹,文件夹路径如下:

/www/wwwroot/ozyblog.top/wp-content/ai1wm-backups

我这里是通过宝塔面板上传的,没装的可以用ftp工具上传

上传完后可以在“备份”栏看到

点那个三个点,上传

狗屎的来了,不支持,需要买插件。。。吐了怎么会有这种软件,吃相未免太难看了,一个宣称免费的插件居然想要恢复就得开会员

哎,手动迁移吧

搬迁方式2——手动迁移(成功)

1,导出数据库

选中网站对应的数据库ozyblog_top导出,下载到本地

然后到原服务器的网站根目录,即这个目录:

选中全部,压缩下载到本地

2,导入数据库

接着去新服务器,先打开数据库管理页面,删除ozyblog_top数据库所有表,然后点击导入,导入数据库文件

导入完后这里可以比对下导入后的数据库和原数据一致不,一致的话就没什么问题

3,上传wp网站文件至新服务器

然后去网站根目录,删除掉所有文件,上传刚才下载的网站备份压缩文件,解压缩

可以看下我的路径:

4,配置数据库

然后编辑解压缩出来的wp-config.php文件:

将数据库名称,用户名密码修改为新服务器的安装wp时候给的数据库信息

如果域名不需要更换的话,那么到这里就已经完成了,浏览器地址栏输入你的域名,看下所有文章是不是回来,

但接着还需要做一件事:设置伪静态

5,设置伪静态

进入宝塔面板后台,点击你的网站,然后按照如下操作,最后点击保存:

写入内容如下

location /
{
  try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

接着,回到wordpress后台,设置如下,最后点击保存:

这样,就实现了用户在你的博客中浏览跳转时候,url变化仅限于文章标题

6,修改数据库绑定的域名(可选)

如果需要更换域名,按照下面步骤来:

首先进入phpmyadmin页面,点击sql:

假设原域名是old_domain.com,新域名是new_domain.com

执行下面的语句:

UPDATE wp_options SET option_value = replace(option_value, 'old_domain.com', 'new_domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'old_domain.com', 'new_domain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'old_domain.com', 'new_domain.com');
UPDATE wp_comments SET comment_content = replace(comment_content , 'old_domain.com', 'new_domain.com');

完成

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Index