Halo 2.0 建站指南:云服务器 _Linux 快速搭建 Halo 博客及使用指南 (CMS)
Halo 2.0 建站指南:云服务器 _Linux 快速搭建 Halo 博客及使用指南 (CMS)
Halo 相关链接:
准备:
云服务器一台 =》建议至少 1 核 2G,购买渠道:阿里云、腾讯云、华为云、UCloud、亚洲云…… 本文的云服务器为 2 核 4G 1M 系统盘 40GB;镜像 CentOS 7.6 64bit
域名一个
SSH 客户端连接工具:XShell 或其他的连接工具都可以,只要能远程连接到云服务器就行
推荐参考视频:
参照 Halo 文档入门指南,以下是 Halo 开源建站的简要指南:
1. 环境要求
硬件配置:
CPU、磁盘 无特别要求
内存 :至少 1G
网络:外网畅通条件下使用
软件环境:Halo 理论上可以运行在任何支持 Docker 及 Java 的平台。
Docker :必须在运行环境安装好 Docker 环境 ,目前 Halo 的默认安装运行方式均使用容器。
(可选):JRE、PostgreSQL、Web 服务器、Wget、VIM
2. 云服务器安装宝塔面板
1️⃣连接云服务器:使用 XShell SSH连接工具 远程连接我们购买的云服务器,首次连接的需要点击左上角【文件】-【新建会话】,填写对应配置后再【连接】。
2️⃣下载安装宝塔面板:
复制脚本,在云服务器上安装宝塔面板:保存最后安装好的面板信息,账号密码等。
安装宝塔面板:
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
显示宝塔面板信息:
bt default
3️⃣宝塔面板安装 Nginx 环境。
3. 安装 Docker
Docker安装文档:Docker 安装指南__CentOS
推荐按照 Docker 官方文档安装 Docker,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。
3.1. 卸载旧版 Docker(可选)
如果服务器之前安装过 Docker,需执行以下命令来卸载旧版本 Docker:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.2. 设置存储库
升级yum包(可选):
yum update
设置存储库 :安装 yum-utils
软件包(提供 yum-config-manager
实用程序)并设置存储库:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.3. 安装 Docker 引擎
安装 Docker 引擎:安装 Docker Engine、containerd 和 Docker Compose:
安装最新版Docker引擎:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.4. 启动 Docker 与验证
启动Docker:
sudo systemctl start docker
通过运行 hello-world 映像来验证 Docker 引擎安装是否成功(验证 Docker 引擎安装是否成功):
sudo docker run hello-world
4. 使用 Docker 镜像 安装 Halo 2.0
4.1. 拉取 Halo 镜像
目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 halohub/halo:2.10 或者 halohub/halo:2.10.0。
halohub/halo:2.10:表示最新的 2.10.x 版本,即每次发布 patch 版本都会同时更新 halohub/halo:2.10 镜像。
halohub/halo:2.10.0:表示一个具体的版本。
后续文档以
halohub/halo:2.10
为例。
拉取 Halo 镜像之前,建议先配置 Docker 镜像下载加速,否则会下载速度特慢(这是一个惨痛的教训😭😭😭)!!!
配置 Docker 镜像下载加速:腾讯云容器镜像服务快速入门参考、推荐:腾讯云Docker镜像源加速镜像下载
1️⃣注册并登录阿里云账号:首先,你需要在阿里云注册一个账号,如果已有账号则登录。
2️⃣开通容器镜像服务:在阿里云的控制台中,找到容器镜像服务(Container Registry),然后开通该服务。
3️⃣创建命名空间(Namespace):在容器镜像服务中,创建一个命名空间,命名空间用于组织和管理你的镜像。
4️⃣获取镜像加速地址:在容器镜像服务的命名空间页面中,可以找到一个加速地址(Registry Domain),该地址是用于加速 Docker 镜像下载的(每个人不一样,免费)。
5️⃣配置 Docker 镜像加速器:打开 Docker 的配置文件,vim 编辑,通常是 /etc/docker/daemon.json
;如果该文件不存在,可以创建它。
<your-accelerator-address> 替换为上一步获取到的镜像加速地址。
{
"registry-mirrors": ["https://<your-accelerator-address>"]
}
6️⃣重启 Docker 服务:保存并关闭配置文件后,重启 Docker 服务使配置生效。
重启 Docker 服务:
sudo service docker restart
# or
sudo systemctl restart docker
7️⃣验证加速器是否生效:运行以下命令检查加速器是否生效。
docker info
如果看到了镜像加速器的信息,表示配置成功。现在,当你使用 docker pull
命令拉取镜像时,将会从加速器的地址下载,提高下载速度。
拉取 Halo 镜像:
docker pull halohub/halo:2.10
4.2. 创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.10
注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:使用 Docker Compose 部署
-it:开启输入功能并连接伪终端
-d:后台运行容器
--name:为容器指定一个名称
-p:端口映射,格式为
主机(宿主)端口:容器端口
,可在application.yaml
配置。-v:工作目录映射。形式为:
-v 宿主机路径:/root/.halo2
,后者不能修改。
运行参数详解:
参数名 | 描述 |
| 数据库连接地址,详细可查阅下方的 数据库配置 |
| 数据库用户名 |
| 数据库密码 |
| 数据库平台名称,支持 postgresql、mysql、h2 |
| 外部访问链接,如果需要在公网访问,需要配置为实际访问地址 |
| 是否禁用页面缓存,默认为禁用,如需页面缓存可以手动添加此配置,并设置为 false。 |
数据库配置:
链接方式 | 链接地址格式 | spring.sql.init.platform |
PostgreSQL |
| postgresql |
MySQL |
| mysql |
MariaDB |
| mysql |
H2 Database |
| h2 |
5. 浏览器访问
用浏览器访问 http://ip:8090/console
即可进入 Halo 管理页面,首次启动会进入初始化页面。
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。
如果通过
http://ip:端口号
的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
Halo 开源建站工具 v2.0 功能演示视频_哔哩哔哩_bilibili
6. 设置域名访问
我这里是在腾讯云购买的域名(注意备案),关于域名购买这里不做赘述,以下只关注 ip 与域名的绑定
6.1. 域名解析(腾讯云)
在自己购买域名的域名商处进行域名解析这一配置,此处以腾讯云为例。
进入域名控制台,【我的域名】→找到自己注册的域名,点击右侧【解析】→【添加记录】即可
配置完成后可以在 多个地点Ping服务器,网站测速 - 站长工具 输入域名,检测域名是否能够解析到我们的 IP 地址。
6.2. 配置反向代理(宝塔面板)
⒈ 添加站点信息:访问我们服务器搭建的宝塔面板,【添加站点】,填写对应站点信息后【提交】。
域名:填写自己先前购买的域名
备注信息:可以默认,也可以自己填写
其余默认
⒉ 配置 SSL 证书:点击 SSL 证书列 未部署 文字,申请证书后,开启【强制 HTTPS】开关。
⒊ 配置反向代理:修改以上新增站点的【配置文件】,如下操作,最后【保存】。
我这里参考的是哔哩哔哩博主的这篇:P8_配置反向代理_哔哩哔哩_bilibili
location / {
proxy_pass http://127.0.0.1:8090/; # halo博客-ip访问的端口,我这里是8090
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
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_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
至此,大功告成!!!我们就不再通过http://ip:8090
访问我们的 halo 博客 ,而可以直接使用购买的域名来访问 halo 博客啦(域名后接 /console 即可进入 Halo 管理页面)~
7. 未完待续……
8. 科普:Docker 和 Docker Compose 区别
Docker 和 Docker Compose 是两个紧密相关但功能不同的工具。
8.1. Docker
容器化平台: Docker 是一种容器化平台,允许你打包、分发和运行应用程序及其依赖项,而无需考虑环境差异。
Docker 引擎: Docker 的核心是 Docker 引擎,它是一个轻量级且强大的容器运行时,用于创建和管理容器。
构建镜像: Docker 允许你使用 Dockerfile 描述应用程序的环境和依赖关系,然后通过构建这个描述文件生成一个镜像,这个镜像可以在任何支持 Docker 的环境中运行。
容器管理: Docker 提供了一系列命令,用于管理容器的生命周期,包括创建、启动、停止、删除等。
8.2. Docker Compose
多容器编排工具: Docker Compose 是 Docker 的一个工具,用于定义和运行多容器的 Docker 应用程序。
YAML 文件描述: 使用 Docker Compose,你可以使用一个 YAML 文件定义应用程序的服务、网络、卷等配置。这个文件描述了应用程序的整体结构。
一键启动: Docker Compose 允许你使用一个简单的命令(通常是 docker-compose up),一键启动整个应用程序,包括所有的服务和配置。
协同工作: Docker Compose 使得协同工作更加容易,可以通过一个文件描述整个应用程序,使得团队成员能够轻松地在不同环境中启动相同的应用。
8.3. 区别
Docker 是容器化平台,Docker Compose 是用于编排多容器应用的工具。
Docker 主要关注容器的创建、管理和运行,而 Docker Compose 更关注于定义和运行多容器应用的整体结构。
Docker 使用 Dockerfile 来构建镜像,而 Docker Compose 使用一个 YAML 文件描述整个应用的组件和配置。
Docker Compose 简化了在开发、测试和部署过程中多容器应用的协调和管理。
通常,你会使用 Docker 构建容器镜像,然后使用 Docker Compose 来定义和运行由多个容器组成的应用程序。这两者通常一起使用,以提供更完整和方便的容器化解决方案。
- 感谢你赐予我前进的力量