halo1.4.1
我也有自己的博客,也玩熟了几个博客的框架,比如hexo等,但是
对于公司业务中的Java应用不是很熟悉,于是自己找项目练习Java的应用,这也是写这篇博客的理由。
简介
Halo是一种现代化的个人独立博客系统,给习惯写博客的同学多一个选择。
一个优秀的开源博客发布应用,值得一试。
安装
环境要求
CentOS 7.x
512 MB 以上内存
1、获取jar包
国内用户推荐地址
https://cloud.zhxdida.xyz/#/1/main/Halo/%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC(Latest)/%E6%AD%A3%E5%BC%8F%E7%89%88%E6%9C%AC(Release)
2、更新软件包
sudo yum update -y
3、安装Java环境
sudo yum install java-1.8.0-openjdk -y
java -version
4、创建halo用户
sudo useradd -m halo
sudo su - halo
mkdir .halo
cd /home/halo/.halo
5、下载配置文件
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
vim ~/.halo/application.yaml
6、上传jar包到/home/halo/.halo目录下
wget https://cloud.zhxdida.xyz/directlink/1/Halo/\%E6\%9C\%80\%E6\%96\%B0\%E7\%89\%88\%E6\%9C\%AC\(Latest\)/\%E6\%AD\%A3\%E5\%BC\%8F\%E7\%89\%88\%E6\%9C\%AC\(Release\)/halo-1.4.1.jar
mv halo-1.4.1.jar halo-latest.jar
7、编写halo.service文件
su - root
vim /etc/systemd/system/halo.service
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 /root/.halo/config/halo-latest.jar
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
cd /root/.halo
mkdir config
mv /home/halo/.halo/* /root/.halo/config/
systemctl daemon-reload
systemctl start halo.service
访问http://ip:8090
配置
1、进行页面初始化设置
2、配置systemctl方式管理
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 /home/halo/.halo/halo-latest.jar
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
注释:
-Xms256m:为 JVM 启动时分配的内存,请按照服务器的内存做适当调整,512 M 内存的服务器推荐设置为 128,1G 内存的服务器推荐设置为 256,默认为 256。
-Xmx256m:为 JVM 运行过程中分配的最大内存,配置同上。
YOUR_JAR_PATH:Halo 安装包的绝对路径,例如 /www/wwwroot/halo-latest.jar。
3、halo配置文件
cat application-template.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&allowPublicKeyRetrieval=true
# username: root
# password: 123456
# H2 Database 的控制台相关配置,如果你使用的是 MySQL ,请注释掉下方内容。
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
注释:
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 和 h2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。
5、server.compression.enabled 为 Gzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认。
6、halo.admin-path 为后台管理的根路径,默认为 admin,如果你害怕别人猜出来默认的 admin(就算猜出来,对方什么都做不了),请自行设置。仅支持一级,且前后不带 /。
7、halo.cache 为系统缓存形式的配置,可选 memory 和 level,默认为 memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择 level,则会将数据缓存到磁盘,重启不会清空缓存。如不知道如何选择,建议默认。
使用
路径信息
/root/.halo存放halo的文件
db 是数据库信息
logs 是halo执行动作的日志信息
static
templates 是博客的主题配置文件
upload 是上传附件信息
/tmp/run.halo.app/halo-data-export/ 备份文章导出的位置
优化
1、归档目录
systemctl stop halo
cd /root/.halo
mkdir config
mv /home/halo/.halo/* /root/.halo/config/
systemctl start halo
2、使用主题
后台 -> 外观 -> 主题,右下角有个蓝色背景的浮动的白色的加号。
主题地址:https://halo.run/p/themes.html
升级
1、 备份数据
cp -r ~/.halo ~/.halo.bak
2、备份旧的安装包
mv halo-latest.jar halo-latest.jar.bak
3、下载最新的 Halo 安装包
{{version}} 为版本号,不带 v,更多下载地址请访问 https://halo.run/archives/download.html
wget https://dl.halo.run/release/halo-{{version}}.jar -O halo-latest.jar
4、测试是否能够正常启动
java -jar halo-latest.jar
5、重启应用
service halo restart
问题
忘记密码:
1、修改数据库的方式
修改application.yml文件
server:
port: 80
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&allowPublicKeyRetrieval=true
# username: root
# password: 123456
# H2 Database 的控制台相关配置,如果你使用的是 MySQL ,请注释掉下方内容。
h2:
console:
settings:
web-allow-others: true
path: /h2-console
enabled: true
2、验证码申请的方式
第一步,访问后台登录页面,如果你没有自定义后台地址,那么登陆页面为 /admin。
第二步,按住键盘的 shift+alt+h 即可调出 找回密码 的按钮。
第三步,输入用户名以及用户邮箱,点击 获取 按钮获取重置密码的验证码。
第四步,收到验证码之后,输入验证码到验证码的输入框。
第五步,填写新密码以及确认密码,点击 重置密码 即可。
第六步,如果是没有配置SMTP则在日志spring.log中获取code 也就是验证码。
写的文章存放在哪里?
修改端口不生效?
登录h2数据库怎么登录?
一个人花在影响自己未来命运的工作选择上的精力,竟比花在购买穿了一年就会扔掉的衣服上的心思要少得多,这是一件多么奇怪的事情,尤其是当他未来的幸福和富足要全部依赖于这份工作时。

浙公网安备 33010602011771号