⼿把⼿教学使⽤Halo搭建⾃⼰的博客⽹站
盘山公路⼯作需要学习,学习需要积累。⽹上有很多好的博客系统。我们可以去"CSDN","博客园"等这种⼤⼚提供的博客空间,也可以⾃⼰搭建⾼逼格的独⽴博客。例如,适合github的hexo,⼤众的wordpress,OneBlog,Tale等。对⽐了⼀波,我选择halo这款博客系统。对于我它有以下⼏个优点:
(1)java语⾔实现,适合java程序员。
(2)动态的主题切换(特别炫⽀持移动端,响应式页⾯)
(3)完善的后台管理功能操作⽅便。
(4)部署超级简单,五分钟完成搭建。
(5)站点迁移⽅便,复制⽂件⼀键迁移。
下⾯讲讲如何搭建Halo,在这之前,购买⾃⼰的云服务器,备案⾃⼰的域名。这是搭建⾃⼰站点,拉取流量的基础;我这⾥是阿⾥云,域名备案也直接在阿⾥云备案:
使⽤ Docker 部署 Halo
使⽤ Docker 部署 Halo 的指南,假设你已经 并了解它的基本使⽤。本篇教程以 CentOS 7.x 为例,其他系统⼤同⼩异。
1. 环境要求
为了在使⽤过程中不出现意外的事故,给出下列推荐的配置 CentOS 7.x 1G 以上内存
2. 服务器配置,配置 Docker 运⾏环境
请确保服务器的软件包已经是最新的。
sudo yum update -y
启动 Docker 后台服务
sudo systemctl start docker
3. 安装 Halo
1. ⾃定义配置⽂件
考虑到部分⽤户的需要,可能需要⾃定义⽐如端⼝等设置项,我们提供了公共的配置⽂件,并且该配置⽂件是完全独⽴于安装包的。当然,你也可以使⽤安装包内的默认配置⽂件,但是安装包内的配置⽂件是不可修改的。请注意:配置⽂件的路径为 ~/.halo/application.yaml。
curl -o ~/.halo/application.yaml --create-dirs /config/application-template.yaml
2. 修改配置⽂件
完成上⼀步操作,我们就可以⾃⼰配置 Halo 的运⾏端⼝,以及数据库相关的配置了。
vim ~/.halo/application.yaml
打开之后我们可以看到:
H2 配置如下:
port: 8090
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
# H2 Database 配置
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: openadmin
h2:
console:
settings:
web-allow-others: false
path: /h2-console
古诗江南
enabled: false
MySQL 配置如下:
port: 8090
spring:
datasource:
# MySQL 配置
driver-class-name: sql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai赵传
username: root
password: openroot
1. 如果需要⾃定义端⼝,修改 server 节点下的 port 即可。
2. 默认使⽤的是 H2 Database 数据库,这是⼀种嵌⼊式的数据库,使⽤起来⾮常⽅便。需要注意的是,默认的⽤户名和密码为 admin
和 123456,这个是⾃定义的,最好将其修改,并妥善保存。
3. 如果需要使⽤ MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默
认数据库名为 halodb,请⾃⾏配置 MySQL 并创建数据库,以及修改配置⽂件中的⽤户名和密码。
4. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使⽤请将 h2.console.settings.web-allow-others 和
3. 拉取最新 Halo 镜像
sudo docker pull ruibaby/halo
4. 创建容器并运⾏
docker run --name halo -d -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
完成以上操作即可通过 ip:端⼝ 访问了。端⼝默认是8090可以在配置⽂件或者启动时添加参数修改。虽然可以访问,但是端⼝暴露很不安全,后续第5步是如何配置域名访问。
4.1 打开博客进⾏博客的初始化操作。初始化完成进⼊admin管理页⾯。
点击右上⾓头像位置最左边的按钮,跳转到博客⾸页。设置主题!
4.2 创建数据库,不需要创建表结构,初始化应⽤的时候⾃动⽣成。
重启服务,打开地址,我们再⼀次初始化博客。打开数据库,可以看到表和数据已经初始化好了:
服务搭建完成,解释⼀下后台配置,特别是主题配置
4.3 菜单分为仪表盘,⽂章,页⾯,附件,评论,外观,⽤户,系统这⼏个,重点解释⼀下外观。外观菜单可以设置博客的主题显⽰效果。打开菜单如下:
4.4 如何修改主题打开编辑主题页⾯:
可以根据⾃⼰的喜好设置⾃⼰的页⾯效果,可以⾃定义友情链接,社交⽹点等。
5.配置域名访问
使⽤ Caddy 进⾏反向代理。Caddy 是⼀款使⽤ Go 语⾔开发的 Web 服务器。其配置更为简洁,并可以⾃动申请及配置 SSL 证书(这⾥推荐使⽤)。
5.1 安装 Caddy
# 安装 Caddy 软件包
yum install caddy -y
5.2 配置 Caddy
# 下载 Halo 官⽅的 Caddy 配置模板
curl -o /etc/caddy/conf.f --create-dirs /config/Caddyfile
5.3 下载完成之后,我们还需要对其进⾏修改。
踢毽子技巧
# 使⽤ vim 编辑 Caddyfile
vim /etc/caddy/conf.f
5.4 打开之后我们可以看到
www.simple {
gzip
tls
proxy / localhost:port {
transparent
}
}
(2)tls 后⾯的 改为⾃⼰的邮箱地址,这是⽤于⾃动申请 SSL 证书⽤的。需要注意的是,不需要你⾃⼰配置 SSL 证书,⽽且会⾃动帮你续签。
(3)localhost:port 请将 port 修改为 Halo 的运⾏端⼝,默认为 8090。
5.5 修改完成之后启动 Caddy 服务即可。
# 开启⾃启 Caddy 服务
systemctl enable caddy
# 启动 Caddy
支持占中的明星
service caddy start
# 停⽌运⾏ Caddy
service caddy stop
张达明老婆何念慈# 重启 Caddy
service caddy restart
# 查看 Caddy 运⾏状态
service caddy status
注意: 如果 Caddy 启动出现诸如 [/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service' 这样的问题,请使⽤ yum update -y 更新系统。然后再使⽤ service caddy restart 重启,已知 CentOS 7.3 会出现该问题。
6.进阶设置
多⽹址重定向到主⽹址,⽐如访问 simple 跳转到 www.simple 应该怎么做呢?
使⽤ vim 编辑 Caddyfile
vim /etc/caddy/conf.f
打开之后我们在原有的基础上添加以下配置: