将 WordPress 网站从新浪云应用迁移到 DigitalOcean
这篇笔记记录了我将一个 WordPress 网站从新浪云应用(SAE)迁移到 DigitalOcean Droplet 的过程。
1. 重定向 SAE 域名
打开 SAE 网站根目录中的 config.yaml,并在 handle 下添加以下规则:
- rewrite: if(in_header["host"] ~ "^www.yovisun.me" && path ~ "^(.*)$") goto "http://www.yovisun.com$1 [L,QSA,R=301]"
这会使用 301 永久重定向,将旧 SAE 域名的请求跳转到新域名。
2. 购买或准备新域名
我是在西部数码购买的新域名。域名准备好后,将其 DNS 记录指向 DigitalOcean Droplet 的 IP 地址。
3. 创建 DigitalOcean Droplet
在 DigitalOcean 上使用一键 WordPress 镜像创建一个 Droplet。设置过程中,添加一个用于登录的 SSH 密钥。
如果本地还没有 SSH 密钥,可以先生成一个:
ssh-keygen -t rsa -C "835570372@qq.com"
4. 为 PuTTY 转换 OpenSSH 私钥
如果你在 Windows 上使用 PuTTY,需要用 PuTTYgen 将 OpenSSH 私钥转换为 PuTTY 的 .ppk 格式。
- 启动 PuTTYgen。
- 点击 Conversions > Import key。
- 选择由 OpenSSH 生成的私钥,例如
id_rsa。 - 点击 Save private key,并将其保存为类似
id_rsa_putty.ppk的文件名。
5. 使用 PuTTY 登录 Droplet
打开 PuTTY,输入 Droplet 的 IP 地址或域名。然后配置私钥:
- 进入 Connection > SSH > Auth。
- 点击 Browse,选择
.ppk私钥文件。 - 返回 Session 并保存该会话。
- 连接到服务器。
首次登录时,按照 WordPress 一键镜像的设置提示操作。就我这里而言,默认设置已经可以接受,所以我一直按 Enter 继续。
6. 配置 DNS
将域名的 DNS 记录设置为 Droplet 的 IP 地址。根据网站需要创建对应记录,例如根域名和 www 子域名的 A 记录。
DNS 修改后,验证域名是否解析到 Droplet:
nslookup www.yovisun.com
或者:
dig www.yovisun.com
7. 更新 WordPress
登录新的 WordPress 仪表盘,在导入内容前更新 WordPress、主题和插件。这样可以减少迁移过程中的兼容性问题。
8. 导入 XML 备份
使用预先导出的 WordPress .xml 备份文件:
- 打开 WordPress 仪表盘。
- 进入 Tools > Import。
- 选择 WordPress。
- 如有需要,安装导入器。
- 上传
.xml文件并运行导入。 - 将导入的文章分配给正确的用户。
- 根据旧站媒体 URL 是否仍可访问,选择是否下载并导入文件附件。
导入完成后,检查文章、图片、永久链接和重定向;确认无误后,再认为迁移完成。
