2023-10-09 记:
Ucloud 新用户有三年优惠,入手了一个。
2022-10-23 记:
阿里云新用户优惠活动购买的3年ECS服务器即将到期,新发现华为有新用户活动,118购买一个月送一年,果断入手。记录一下迁移过程~
0.前提
配置:2vCPUs | 4GiB
操作系统:CentOS 7.9 64bit
带宽:2 Mbit/s
带宽:1 Mbit/s
1.yum源切换
-
1.
华为云服务器安装后,centos源默认已切换为:repo.huaweicloud.com
Ucloud 安装后也内置了自己的源
mirrors.ucloud.cn
,如果还需要切换到其他开源镜像可以这么操作:cd /etc/yum.repos.d/ mkdir repo_bak mv *.repo repo_bak/ # 配置使用网易和阿里的开源镜像repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
-
2.添加EPEL:华为云/Ucloud 服务器 安装后默认已内置
如果需要手动安装:
yum install -y epel-release # 还可以使用阿里开源镜像提供的epel源 wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
-
3.清除原有yum缓存
yum clean all
-
4.刷新缓存
yum makecache
2.中文显示(非必需)
#检查当前环境(如果已经是zh_CN.UTF-8则无需处理了)
localectl status
#安装中文字体
yum groupinstall "fonts" -y
#列出所有可用的公共语言环境的名称
locale -a |grep "zh_CN"
#设置locale,配置文件在 /etc/locale.conf(也可以直接修改配置文件)
localectl set-locale LANG=zh_CN.UTF-8
# 如果以上不生效
echo 'export LC_ALL="zh_CN.UTF-8"' >> /etc/profile
source /etc/profile
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
source /etc/locale.conf
#需要重启
reboot
#
localectl status
#如果还是无法显示中文,则可能是缺少中文字体
yum -y install fontconfig
fc-list :lang=zh
3.启动方式
# 查看默认启动方式是否是图形化界面
systemctl get-default
# 华为/Ucloud 镜像默认即为:命令行模式
# systemctl set-default multi-user.target
4.开启SSH
默认已开启,端口为:22,需要修改下
## 1、查看ssh服务是否启动
systemctl status sshd.service
## 2、修改配置
vi /etc/ssh/sshd_config
## 3、修改完配置后需要重新启动
systemctl restart sshd.service
## 4、设置开机启动(一般默认都已开启)
systemctl enable sshd.service
## 使用云服务器提供的安全组,无需配置防火墙(默认安全组只放行了端口22,也需要同步修改)
5.迁移系统配置
-
系统配置
环境变量脚本文件的执行顺序如下:
/etc/profile->/etc/profile.d->/etc/bashrc->用户的.bash_profile->用户的.bashrc/etc/profile
/etc/profile.d/
/etc/bashrc
~/.bash_profile
~/.bashrc
source /etc/bashrc
-
环境变量
x
-
Nginx
已按 conf.d 目录拆分成小的配置,更便捷。
yum install -y nginx # /etc/nginx 迁移配置文件 # 迁移SSL证书 /etc/letsencrypt mkdir -p /etc/letsencrypt/ systemctl enable nginx systemctl start nginx ln -s /etc/nginx /opt/nginx
-- 后面还得安装
certbot
-
crontab
-
JDK
jdk17
mkdir -p /opt/java cd /opt/java wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz tar xzvf apache-maven-3.8.6-bin.tar.gz rm -rf apache-maven-3.8.6-bin.tar.gz wget https://download.oracle.com/java/17/archive/jdk-17.0.8_linux-x64_bin.tar.gz tar xzvf jdk-17.0.8_linux-x64_bin.tar.gz rm -rf jdk-17.0.8_linux-x64_bin.tar.gz ln -s /opt/java/jdk-17.0.8 /opt/java/jdk-17
jdk8
使用 azul openjdk
https://www.azul.com/downloads/?package=jdk#download-openjdk
6.迁移数据库
6.1 mysql
-
1、安装MySQL 8.0
参考:CentOS 7 安装 MySQL 8.0及常见问题 -
2、
/etc/my.cnf
-
3、halo等库迁移
CREATE DATABASE `halodb` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE `matomo`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE `sherlocky_prd`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE `ghost-blog-new`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; SET GLOBAL log_bin_trust_function_creators=TRUE;
sqlyog可对拷迁移数据
-
4、触发器
-
5、备份
-
6、配置忽略大小写
尽量在安装的时候,启动前就配置好(需要手动init,不能直接启动服务),中途修改会无法启动(注意备份数据)。
[mysqld] lower_case_table_names=1
注意:官网上明确指出mysql8.x只有在初始化时才能设置忽略大小写。地址:
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names。
如果已经安装好,需要卸载掉重新安装,修改完my.cnf,先重新初始化,再启动,注意备份数据。。
初始化命令:
mysqld --user=mysql --lower_case_table_names=1 --initialize-insecure --datadir=/var/lib/mysql
7.迁移博客
-
halo
mkdir -p /opt/halo && cd /opt/halo wget https://dl.halo.run/release/halo-1.5.2.jar wget https://dl.halo.run/release/halo-1.5.6.jar wget https://dl.halo.run/release/halo-1.6.1.jar ln -s /opt/halo/halo-1.5.2.jar /opt/halo/halo-latest.jar ...
-
.halo
-
halo.service --> /etc/systemd/system/halo.service
-
icon
- favico:
https://ghost.oss.sherlocky.com/Fo58f32lahSftASkDjWsWwmrCmw_-thumb
- logo old(黑色):
https://ghost.oss.sherlocky.com/FmSG3ngZuvRvQn7muJMRmUamjEti-thumb
- logo new(蓝色#0396ff):
,蓝色(无字)https://ghost.oss.sherlocky.com/halo/sherlock-logo-blue@0.5x.png
https://ghost.oss.sherlocky.com/halo/sherlock-icon-qiye-weixin.png
- favico:
-
主题,使用主题
Theme Joe3
- 轮播文章上传封面图
- 默认封面图:
https://ghost.oss.sherlocky.com/halo/%E9%BB%98%E8%AE%A4%E5%B0%81%E9%9D%A2-350x200.png-thumb
- 用户头像:
https://ghost.oss.sherlocky.com/halo/sherlock-avatar.png
-
logo样式问题无字logo时不需要
/** Theme Joe3 logo 样式修正 */ .joe_header__above-logo img { height: 34px !important; }
- 加载慢问题,要走CDN
https://ghost.oss.sherlocky.com/halo/themes/theme-Joe3/templates
- 主题下统计代码问题
51la 配置外部JS链接(body)
//js.users.51.la/20526105.js
CNZZ开始收费了,干掉。。 - 手动添加一个博文快捷编辑入口
#修改 halo_data/themes/theme-Joe3/templates/post.html <span class="line">/</span> <span class="text" ><a style="color: var(--minor);" th:href="@{'/console/posts/editor?name='+${post.metadata.name}}" target="_blank">编辑</a> </span>
-
文章编辑器
- ByteMD
可生成较好的TOC目录效果
- 【插件】文章限制阅读
内容分割:需要在显示与隐藏内容中间插入
<separator></separator>
的 HTML 标签即可。
隐藏部分内容:按照<separator-start></separator-start>
隐藏内容<separator-end></separator-end>
的方式添加 HTML 标签即可。个人使用markdown编辑,需要保证编辑器不对此标签进行转义,目前应用市场中的 Markdown 插件都会对非安全 HTML 标签进行转义,可能导致功能无法使用。
需搭配使用Willow Markdown 编辑器,
- ByteMD
-
文件备份等
-
升级
- 1.5.6
- 1.6.1
- 2.x 升级前备份库,备份目录,使用新库,新目录.halo2
-
统计信息
-
文章作者头像还没有设置
-
默认分类-文章处理,分类封面图
-
附件分组怎么配置
-
上传图片 后缀样式 -
SMTP设置
-
halo主程序附带的js、css能否走CDN
8.迁移其他程序
8.1 jenkins
ln -s /opt/java/jdk-17/bin/java /usr/bin/java
/root/update-center.json
安装配置参考:CentOS 安装 Jenkins 及 国内下载加速
使用备份 ThinBackup 恢复时尽量保持版本一致,如果恢复后看不到job,
可尝试修改:/var/lib/jenkins/users/users.xml 中带数字的名字部分,如果还不行,可尝试恢复整个 /var/lib/jenkins/ 目录。
手动安装gitee插件:https://help.gitee.com/devops/connect/Jenkins-Plugin/
手动关闭更新提醒
/opt/backup/jenkins H 0 * * 1-7
8.2 Nginx
Nginx 顺道直接拆分为 conf.d 目录下单个配置文件,更直观,修改也更方便。
8.3 其他
-
/root/.acm
-
/root/.ssh
-
backup2oss
-
frp
ln -s /opt/frp_0.38.0/ /opt/frp
配置成服务化
vi /etc/systemd/system/frps.service[Unit] Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple ExecStart = /opt/frp/frps -c /opt/frp/frps.ini [Install] WantedBy = multi-user.target
systemctl daemon-reload
systemctl enable frps -
certbot
yum install certbot -y
-
certbot-alidns -
certbot-alydns
cd /opt git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au mv certbot-letencrypt-wildcardcertificates-alydns-au certbot-alydns cd certbot-alydns chmod 777 au.sh #修改au.sh 添加阿里云 AK/Secret
-
git
yum install git -y
-
Python、Python3
yum install -y python3
-
node
yum install nodejs -y
yum install npm -y -
backup
-
bin
-
/etc/bashrc
## java export JAVA_HOME=/opt/java/jdk-17 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=/opt/java/apache-maven-3.8.6/bin:$PATH ## aliyun export CERTBOT_ALI_KEY= export CERTBOT_ALI_SECRET= ## qiniu export QINIU_ACCESS_KEY="" export QINIU_SECRET_KEY=""
-
sherlock
-
docker
-
maven、gradle
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
sdk list gradle
sdk install gradle 5.6.4 -
Go
yum install -y golang
-
halo-es 搜索 数据库地址变更,halo2.x已自带搜索 -
ImageMagick
yum install -y ImageMagick
-
ffmpge
cd /opt/ && wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz tar xf ffmpeg-release-amd64-static.tar.xz rm -rf rm -rf ffmpeg-release-amd64-static.tar.xz mv ffmpeg-6.0-amd64-static ffmpeg ln -s /opt/ffmpeg/ffmpeg /usr/bin/ffmpeg ln -s /opt/ffmpeg/ffprobe /usr/bin/ffprobe
-
Ucloud监控
https://docs.ucloud.cn/umon/agent
wget http://umon.api.service.ucloud.cn/static/umatest/uma-py3-1.2.3-1.x86_64.rpm rpm -ivh uma-py3-1.2.3-1.x86_64.rpm systemctl enable uma systemctl start uma
8.4 portainer
/opt/portainer/
8.5 1Panel
- 电子书库
calibre-web
备份目录:
/opt/1panel/apps/calibre-web/calibre-web/books
/opt/1panel/apps/calibre-web/calibre-web/config
9.监控和安全
- 监控可以使用服务器官方提供的,再加上1Panel
- Fail2ban 可以屏蔽暴力破解 IP(发现SSH经常被攻击)
评论区