halo1.4.1

我也有自己的博客,也玩熟了几个博客的框架,比如hexo等,但是
对于公司业务中的Java应用不是很熟悉,于是自己找项目练习Java的应用,这也是写这篇博客的理由。

简介

Halo是一种现代化的个人独立博客系统,给习惯写博客的同学多一个选择。
一个优秀的开源博客发布应用,值得一试。

官网
GitHub
社区
安装文档

安装

环境要求

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数据库怎么登录?

posted @ 2020-10-06 20:45  热气球!  阅读(278)  评论(0)    收藏  举报