本文基于centOS7.9操作系统,望知!

必备条件

  1. 一台云服务器

  2. 一个善于思考且耐心十足的灵魂

1.下载安装docker

1.安装软件包
sudo yum install -y yum-utils
Bash
2.从阿里云镜像源下载docker
sudo yum-config-manager \
   --add-repo \
       http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
vim
3.安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Stata Ado
4.验证docker是否安装成功
sudo docker -v
Bash
5.启动docker
sudo systemctl start docker
Bash
6.设置docker为开机自启
sudo systemctl enable docker
Bash

2.下载+部署halo

1.通过docker拉取halo镜像(当前2.20为最新版本,后期维护不定,读者自行到https://github.com/halo-dev/halo/releases查阅)
docker pull halohub/halo:2.20
Apache
注:如果这一步出现Error response from daemon: Get "https://registry-1.docker.io/v2/" 开头的错误
       sudo vim /etc/docker/daemon.json
Bash

输入法切换为英文,按i进入INSERT模式,将下面这段代码复制进去并保存

{
"registry-mirrors":
[
"https://docker.m.daocloud.io/",
"https://huecker.io/",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru/",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://9skwuhnf.mirror.aliyuncs.com",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
Prolog

重新加载文件:

systemctl daemon-reload
EBNF

重新启动docker:

systemctl restart docker
EBNF

问题即可解决。

2.创建挂载目录
mkdir -p /data/halo && cd /data/halo
Bash
3.创建halo容器(注意:此处最后的版本号须与第一步的版本一致)
docker run -it -d --name halo -p 8090:8090 -v /data/halo/.halo2:/root/.halo2 halohub/halo:2.20
Apache
4.查看halo容器状态
docker ps
EBNF
5.检查halo容器日志,确保halo服务启动成功
docker logs halo
EBNF

3.部署完成,通过下述地址访问halo初始化页面,至此完成。

http://您的云服务器公网IP地址:8090/console/setup
AWK

附加

配置nginx实现域名访问(http,浏览器会显示不安全)

1.安装nginx

sudo yum install -y nginx
Bash

2.启动nginx并配置为开机自启

# 启动 Nginx
sudo systemctl start nginx.service
# 设置开机自启 Nginx
sudo systemctl enable nginx.service
Bash

4.创建halo配置文件

vim /etc/nginx/conf.d/halo.conf
vim

复制如下内容到文件中,并将server_name修改为自己的域名:

server {
    listen 80;

    server_name example.com www.example.com;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8090/;
    }
}
nginx

然后:

# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload
Bash

至此完成,可通过域名访问。

配置ssl证书较繁琐,本文不做说明,在哪个平台注册的域名就去哪个平台申请ssl证书,相关教程网上很多,自行查阅。