一、前言
一款风格特别棒的博客
最新项目分支GitHub:https://github.com/halo-dev/halo
二、简介
Halo 可能是最好的 Java 博客系统
Halo [ˈheɪloʊ],意为光环。当然,你也可以当成拼音读(哈喽)。
轻快,简洁,功能强大,使用 Java 开发的博客系统。
博客作者 GitHub:https://github.com/halo-dev/halo
三、快速开始
安装 Halo
1、下载配置文件
请注意:配置文件的路径为 ~/.halo/application.yaml。
# 下载配置文件到 ~/.halo 目录
curl -o ~/.halo/application.yaml --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/application-template.yaml
2、修改配置文件
完成上一步操作,我们就可以自己配置 Halo 的运行端口,以及数据库相关的配置了。
# 使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml
打开之后我们可以看到
server:
port: 8090
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
# H2 Database 配置,如果你需要使用 MySQL,请注释掉该配置并取消注释 MySQL 的配置。
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: 123456
# MySQL 配置,如果你需要使用 H2Database,请注释掉该配置并取消注释上方 H2Database 的配置。
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
# username: root
# password: 123456
# H2 Database 的控制台相关配置,如果你使用的是 MySQL ,请注释掉下方内容。
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
如果需要自定义端口,修改 server 节点下的 port 即可。
3、运行 Halo
需要注意的是,Halo 的整个额外文件全部存放在 ~/.halo 目录下,包括 application.yaml(用户配置文件),template/themes(主题目录),upload(附件上传目录),halo.db.mv(数据库文件)。
# 下载最新的 Halo 安装包
wget http://halo.ryanc.cc/get/halo-1.0.3.jar -O halo-latest.jar
# 启动 Halo
nohup java -jar halo-latest.jar >/dev/null 2>&1&
4、运行后
当你运行成功后会看到该图,证明你部署成功!
Halo进阶配置
上面我们已经完成了 Halo 的整个配置和安装过程,接下来我们对其进行更完善的配置,比如:需要开机自启?,更简单的启动方式?
实现以上功能我们只需要新增一个配置文件即可,也就是使用 Systemd 来完成这些工作。
# 下载 Halo 官方的 halo.service 模板<br>
sudo curl -o /etc/systemd/system/halo.service --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/halo.service
下载完成之后,我们还需要对其进行修改。
# 修改 halo.service
sudo vim /etc/systemd/system/halo.service
打开之后我们可以看到
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar jar-path
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
我们只需要将 ExecStart 中的 jar-path 改为自己服务器上安装包的路径即可,例如 /www/wwwroot/halo-latest.jar,之后保存即可。
# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload
# 使 Halo 开机自启
sudo systemctl enable halo
# 启动 Halo
sudo systemctl start halo 或者 sudo service halo start
# 重启 Halo
sudo systemctl restart halo 或者 sudo service halo restart
# 停止 Halo
sudo systemctl stop halo 或者 sudo service halo stop
# 查看 Halo 的运行状态
sudo systemctl status halo 或者 sudo service halo status
配置域名访问
1、使用 Nginx 进行反向代理
# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装 Nginx
sudo yum install -y nginx
# 启动 Nginx
sudo systemctl start nginx.service
# 设置开机自启 Nginx
sudo systemctl enable nginx.service
配置 Nginx
# 下载 Halo 官方的 Nginx 配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/nginx.conf
下载完成之后,我们还需要对其进行修改
# 使用 vim 编辑 halo.conf
vim /etc/nginx/conf.d/halo.conf
打开之后我们可以看到
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/;
}
}
注意:请把 example.com 改为自己的域名。
修改完成之后
# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload
配置 SSL 证书
# 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python2-certbot-nginx -y
# 执行配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx
# 自动续约
sudo certbot renew --dry-run
到这里,关于 Nginx 的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。
注意
在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。
博客主题地址
博客主题地址
由于考虑到有些电脑小白,这里放上博客视频教程(非本人)
博客安装视频教程