🚀 白嫖之旅:记一次将Wordpress从NAS迁移到甲骨文服务器的过程

Wordpress

笔者的博客网站差不多也有2年时间了,一开始用的是Hexo,使用Markdown+gitea+drone+nginx进行日常的写作和发布,跑在腾讯云的服务器上。后来服务器到期后,续期的价格实在难以接受,于是又基于自己的NAS(从群晖到威联通)+Cloudflare Tunnels实现无成本建站,这是第一次迁移,同时也将建站程序由Hexo转到Wordpress,无他,看上了Wordpress完善的生态和成熟(其实是自己懒),总体来说在这个阶段还是知足的,毕竟是无成本方案😂。

Cloudflare穿透的问题

在正式说迁移前,先说说为何要迁移。

基于Cloudflare的穿透方案,网站可以突破墙内的端口封锁,又省去了购买服务器的花销,其实是一个相对不错的方案了。不过,还是有一些不足:

  • 第一,网站的访问速度却始终不太理想,毕竟Cloudflare免费计划在墙内没有CDN节点,所有的流量都要出去绕一圈,不慢才怪。

  • 第二,网站部署在NAS上,潜在的可用性是一个大问题,NAS关机或重启,网站自然就无法访问了,这一点其实不是大问题(极少重启NAS),但是不完美不是?

  • 最后还有一点其实最让人无奈,不知道使用Cloudflare穿透的朋友有没有注意到,即使NAS、网站、网络都是正常的情况下,网站还是会时不时无法访问?其实原因很简单,Cloudflare穿透默认是基于UDP协议的,而墙内运营商是歧视UDP的,会对UDP进行丢包或其他限制手段,自然就会导致穿透不稳定(甚至有规律的中断),简直不要太难受!

另寻出路

有了以上的体验和经历,笔者一直在酝酿第二次迁移计划,但是前提是无成本(白嫖是吾之宗旨)。

于是盯上了甲骨文的免费账户方案,这还得赖网友们的不断炫耀(特别是@天地无限@hammer老头😂),从此笔者开始了持续大半年注册甲骨文账号之旅,不断在玄学和例行失败中挣扎。最终黄天不负白嫖人,白嫖之心终于战胜玄之又玄,还真让笔者注册成功了。

但是,万事总有个但是!在顺利开出了两台x86之后。。。真正的目标——ARM服务器却开不出来!这1C1G的x86用来跑Wordpress+MySQL也太捉襟见肘了,于是继续蛰伏。

也就在大概一周前,@天地无限升级了他的甲骨文账号,一切顺利;@hammer老头紧随其后,并且顺利开出了ARM(4C+24G不要太香),于是笔者的春天也来了。照葫芦画瓢,也将账号升级了(升级账号不需要付费,只有超出免费额度才需要花钱),也!顺利!开出了!ARM!!!

在等待了几天后,连夜将网站迁到了这台ARM服务器上。

迁移之旅

说起迁移,得先说要迁移什么。笔者网站使用的是Wordpress+MySQL,域名使用Cloudflare解析不需要太多调整。那么就是迁移MySQL的数据和Wordpress的网站文件。所以接下来看笔者如何一步步操作。

‼️重要提示:在开始下面操作前,请先停止Wordpress程序,以免导出数据后程序继续产生新的数据,导致迁移后数据不一致。

1️⃣ 导出Mysql数据

笔者的MySQL也是跑在NAS上的,那么只需要从电脑上连接上数据库,使用mysqldump导出网站数据即可。

第一步:确保电脑上已经安装了mysql-client,如果没有就安装一下:

brew install [email protected]

第二步:然后就可以使用mysqldump开始导出数据:

/opt/homebrew/Cellar/[email protected]/8.4.2/bin/mysqldump wp --result-file=~/Desktop/wordpress/nas_mysql-2024_10_02_00_56_01-dump.sql --user=root --host=192.168.31.91 --port=3306

或者也可以使用一些数据库管理工具,比如DataGrip,选中Wordpress使用的库,右键,一键导出:
Wordpress

导出的数据文件是一个SQL文件,里面就是各种建表和插入数据语句,请勿进行修改。

第三步:将数据文件发送到甲骨文数据库

这一步也可以等到后面使用宝塔面板直接上传导入。笔者这里选择使用scp命令发送,建议在发送前将sql文件压缩一下,以减小文件体积。

scp ./nas_mysql-2024_09_28_21_38_14-dump.zip root@ip:/tmp

2️⃣ 打包Wordpress文件

笔者的Wordpress是使用Docker部署的,所以迁移也非常方便,只需要将整个网站的文件打包,然后发送到甲骨文服务器即可。

选中html文件夹,点击压缩即可。
Wordpress

同样使用scp进行发送:

scp ./wordpress.zip root@ip:/tmp

3️⃣ 配置甲骨文服务器环境

笔者选择使用宝塔面板管理MySQL和Nginx,当然这个并不重要,仅仅是因为简单,你也可以使用其他方式安装;另外,Wordpress还是使用Docker部署,这个纯粹是对Docker的偏爱。

第一步:安装Docker,使用下面命令快速安装:

curl -fsSL https://get.docker.com -o get-docker.sh

第二步:安装宝塔面板,可在官网获取安装方法:

https://www.bt.cn/new/download.html

安装完成后,按照提示登录宝塔面板,继续按照提示安装MySQL、Nginx等软件,笔者忘记截图了,就不展示了。

第三步:创建数据库

安装完MySQL后,点击数据库->MySQL->添加数据库,创建一个新的数据库。

Wordpress

数据库名称、用户名、密码等按自己心意设置,只要跟Wordpress中保持一致即可。
Wordpress

4️⃣ 恢复数据和网站

以上就把所有的该准备不该准备的都准备完了,现在可以开始关键时刻啦。

首先,在上面创建好的数据库上面点击导入,将我们上传到甲骨文上的SQL数据导入到数据库中。

Wordpress

这里可以看到支持直接上传,也可以从服务器选择,我们点击从本机导入,选择我们之前上传到服务器上的SQL文件(可以解压,也可以不解压),然后静等导入完成。
Wordpress

第二步,启动Wordpress

使用SSH登录系统,或者在宝塔面板的文件中操作。先在系统中创建一个数据文件夹,比如/home/data/wordpress/www,然后将之前上传到服务器上的Wordpress文件压缩包复制到这个文件夹下面,并解压出html文件夹。

另外在/home/data/wordpress/下面新建一个compose.yml文件,将下面的内容粘贴进去:

version: '3.9'
services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress
    restart: unless-stopped
    network_mode: bridge
    environment:
        WORDPRESS_DB_HOST: 172.17.0.1
        WORDPRESS_DB_USER: 数据库名称
        WORDPRESS_DB_PASSWORD: 数据库密码
        WORDPRESS_DB_NAME: 数据库用户名
        WORDPRESS_DEBUG: false
        PUID: 0
        PGID: 0
        UMASK: 022
        TZ: Asia/Shanghai
    ports:
      - '8888:80'
    volumes:
      - ./www/html:/var/www/html

将其中的数据库名称、数据库密码、数据库用户名改为上面创建的数据库对应的即可。然后,启动Wordpress:

docker compose up -d

5️⃣ 设置反代

在4️⃣中已经完成了网站数据的恢复和站点部署,但是网站还不能被外部访问到,这时候Nginx就派上用场了,我们需要在Nginx中对网站设置反代,以便后续的域名解析。

回到宝塔面板,点击网站->反向代理->添加反代,新增一个反向代理:
Wordpress

填写网站的域名和Wordpress的地址,点击确定即可。
Wordpress

以上,关于网站的迁移其实已经完成了,不过还差最后一步,就是将此前使用Cloudflare穿透解析的域名修改为解析到甲骨文的IP上。

6️⃣ 解析域名

首先,在Cloudflare中删除穿透域名。打开Zero Trush->Networks->Tunnels,在隧道中删除此前创建的域名规则。

Wordpress

然后,回到CF控制台,进入域名管理界面,点击DNS菜单,添加一条解析记录,将网站解析到甲骨文的IP即可。
Wordpress

输入二级域名和IP地址,笔者这里同时开启了小黄云(也就是由CF提供默认的SSL证书)。
Wordpress

笔者这里选择使用CF的SSL证书,一方面省去了自己在宝塔面板配置SSL的过程,所有的流量由CF代理,可能会损失一些速度;另一方面就是笔者的甲骨文所在区的线路不是太好,从墙内访问的话,有些地区甚至不可达,连速度都没有。当然,这只是笔者的个人情况,你也可以直接在服务器上配置自己的SSL证书。

至此,笔者成功完成了网站的迁移,包括各种插件、主题设置全都完整保留了下来,心情无比舒畅~~
Wordpress

总结

以上就是笔者将博客从NAS迁移到甲骨文的全过程,总体来说还是比较顺利的,除了其间将MySQL的地址写错导致Wordpress无法连接数据库外(折腾了1个多小时才发现),再无其他问题,整个迁移过程大概持续了1小时40分钟。笔者自己体验下来,网站的打开速度明显上了一个台阶,丝滑多了。

后续,笔者还将针对网站和数据库进行备份相关的配置,俗话说没事多折腾,折腾折腾就来事了,希望这套方案能够坚持久远吧~~

最后,如果你正在访问笔者的网站,还请不吝键盘,将你的访问体验写在评论区,以便笔者知道如何持续改进,谢谢。

原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!

高等精灵实验室

原创文章,作者:诺多,如若转载,请注明出处:https://www.huluohu.com/posts/1216/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
🚀 Postwoman:逃离Postman,一款开源的API测试神器!
上一篇 2024年10月1日 07:00
《霸王别姬》:一出跨越半世纪的绝美戏剧
下一篇 2024年10月3日 07:00

相关推荐

发表回复

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

评论列表(6条)

  • mihomo openwrt
    mihomo openwrt 2024年10月4日 20:12

    甲骨文的服务器我白嫖不到TAT

  • 999338.xyz
    999338.xyz 2024年10月8日 00:28

    我的网站就是时不时无法访问
    不知道怎么调试
    没有头绪

  • kankan
    kankan 2025年12月14日 13:10

    网站做的很漂亮,请问博主,你使用的是什么主题啊?插件显示使用的是kratos主题,但是我试了下,跟你这主题查了十万八千里笑哭

    • 诺多
      诺多 2025年12月15日 23:36

      @kankan我之前用的是kratos,现在不是了,目前这个是买的主题(别人送的Justnews😂)