记一次 solo 迁移

本贴最后更新于 2086 天前,其中的信息可能已经物是人非

背景

由于一些历史原因,我原来是将博客、网页部署在腾讯云的服务器上的,后来因为腾讯云的蜜汁服务体验,果断买了阿里云的服务器,不过由于腾讯云的域名时间有效期还很长,本着不要浪费的原则,我决定域名 zhijianzhang.cn 继续使用,而将原服务器上的 solo 博客迁移到阿里云上。所以有了一个比较尴尬的场景:使用腾讯云购买的域名和阿里云的服务器。.

数据库迁移

  1. 在新的目标服务器的数据库中创建一个名为 solo 的数据库
    imagepng

  2. 右键 Connection -> Data Transfer
    imagepng

  3. 选择配置之后,就 Next -> Start
    imagepng

  4. 迁移完了之后,目标服务器上有了 solo 数据表和数据
    imagepng

项目文件迁移

  1. 压缩 solo 项目文件: sudo tar zcvf solo.tar.gz solo-2.9.4/
    imagepng

  2. 通过 ubuntu 的 scp 命令向目标服务器传输这个压缩文件: scp -r solo.tar.gz root@xxx.yy.cc.rrr:/usr/local/workspace/ . 输入密码之后就会开始慢慢传输文件
    imagepng

  3. 去目标服务器上解压文件

    cd /usr/local/workspace/
    tar xzvf solo.tar.gz
    

    imagepng

  4. 启动 solo nohup java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter >/dev/null 2>&1 &, 启动就完事了,是不可能的。
    imagepng

注意,我主要是为了操作方便,所以 mysql 的用户名和密码都是一致的,所以这里能直接不修改启动就行了。

nginx 配置

其实这一步不算是迁移,就在新的服务器上为 solo 添加配置。 贴一下从 D 那抄的配置:

upstream backend {
    server localhost:8080; # Tomcat/Jetty 监听端口
}

server {
    listen       80;
    server_name  solo.zhijianzhang.cn; # 博客域名

    access_log off;

    location / {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
        add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

imagepng

我这边主要是在 /etc/nginx/conf.d 中新建一个 solo.conf 文件,写入上面的配置之后 reload 一下 nginx 配置就行了。因为默认 /etc/nginx/nginx.confincludeconf.d 文件夹下的所有 .conf 配置文件的内容。

sudo nginx -t 
sudo nginx -s reload

云解析

imagepng

这里不要奇怪为什么在腾讯云的控制台,上面说了,因为是腾讯云上购买的域名,要云解析到阿里云的服务器的话,需要将整个域名在阿里云重新进行备案(其实跟在阿里云重新购买并备案一个域名差不多),时间上大概也是一个月左右,备案通过之后还是在腾讯云的控制台进行管理云解析。

最后

如果顺利的话,一般经过上述步骤之后,访问同一个域名,就能看到熟悉的博客了。如果不顺利的话,emmmm .... 聪明的你一定会发现哪里出了问题的!

(这篇笔记算是写了两遍...., solo 竟然在没有写标签的情况下没有触发自动保存,页面一切写了大半小时的内容就没了...)

迁移过程的错误

迁移完了之后,需要写一篇博客看看数据能够正常保存。在发布博客的时候,有可能会出现如下的问题:

本来以为出现这个问题的原因是由于数据库的格式引起的,手动去修改数据库格式为 utf8mb4 之后生效了一会之后又不行了。后来改回原来的格式,发现重新新建的文章是可以保存成功的,出现这个原因只是单的这篇。

具体原因手动 @D

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • DrJoseph

    D 大好像没发现这篇帖子,帮你手动艾特一下 @88250

    1 回复
  • 好像他已经“顺利”完成了 👻 细节上后续会继续优化,感谢。