由于原阿里云服务器马上到期,又趁活动买了年费的更划算的服务器,所以需要搬迁下部署的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');
完成