0%

halo搭建属于自己的博客

halo是一个优秀的开源博客发布应用

它拥有部署方便,高扩展性,方便管理的特点

是搭建一个用来博客的好选择

下面开始讲述如果使用 halo 来搭建属于自己的博客吧!

halo源码仓库

观前提示:

  1. 具备一定的 Linux 基础
  2. 如需域名绑定,请先保证已经正确解析 IP,以及确认服务器是否需要备案
  3. 如需使用 IP 访问,请先确保 Halo 的运行端口已经打开,除非你使用 80 端口运行 Halo
  4. 如 3 所述,如果你使用了类似 宝塔面板 之类的 Linux 管理面板,可能还需要在面板里设置端口
  5. 不要想当然,请严格按照文档的流程操作

环境要求

  • CentOS 7.x 以上
  • 服务器拥有 512 MB 以上内存

服务器配置

更新软件包

确保服务器的软件包是最新的

1
sudo yum update -y

安装 Java 运行环境

如果有JAVA环境可跳过

1
2
3
4
5
# 安装 OpenJRE
sudo yum install java-1.8.0-openjdk -y

# 检测是否安装成功
java -version

安装 Halo

下载配置文件

请注意:配置文件的路径为 ~/.halo/application.yaml

1
2
# 下载配置文件到 ~/.halo 目录
curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml

修改配置文件

完成上一步操作,我们就可以自己配置 Halo 的运行端口,以及数据库相关的配置了

1
2
# 使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml

打开之后我们可以看到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
server:
port: 8090

# Response data gzip.
compression:
enabled: false
spring:
datasource:

# H2 database configuration.
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: 123456

# MySQL database configuration.
# 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 console configuration.
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false

halo:

# Your admin client path is https://your-domain/{admin-path}
admin-path: admin

# memory or level
cache: memory
  1. 如果需要自定义端口,修改 server 节点下的 port 即可
  2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin123456,这个是自定义的,最好将其修改,并妥善保存
  3. 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码
  4. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-othersh2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置
  5. server.compression.enabledGzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认
  6. halo.admin-path 为后台管理的根路径,默认为 admin,如果你害怕别人猜出来默认的 admin(就算猜出来,对方什么都做不了),请自行设置。仅支持一级,且前后不带 /
  7. halo.cache 为系统缓存形式的配置,可选 memorylevel,默认为 memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择 level,则会将数据缓存到磁盘,重启不会清空缓存。如不知道如何选择,建议默认

使用 MySQL 之前,必须要先新建一个 halodb 数据库,MySQL 版本需 5.7 以上。

运行 Halo

Halo 的整个应用程序只有一个 Jar 包,且不包含用户的任何配置,它放在任何目录都是可行的。需要注意的是,Halo 的整个额外文件全部存放在 ~/.halo 目录下,包括 application.yaml(用户配置文件),template/themes(主题目录)upload(附件上传目录)halo.db.mv(数据库文件)。一定要保证 ~/.halo 的存在,你博客的所有资料可都存在里面。所以你完全不需要担心安装包的安危,它仅仅是个服务而已

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载最新的 Halo 安装包,{{version}} 为版本号,不带 v
wget http://halo.ryanc.cc/release/halo-{{version}}.jar -O halo-latest.jar

# 或者
wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar

# 或者,{{version}} 为版本号,不带 v
wget https://halo.nova.moe/release/halo-{{version}}.jar -O halo-latest.jar

# 备用地址(建议海外服务器使用)
wget https://github.com/halo-dev/halo/releases/download/v1.2.0/halo-1.2.0.jar -O halo-latest.jar

# 启动测试
java -jar halo-latest.jar

如看到以下日志输出,则代表启动成功.

1
2
run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin

提示

以上的启动仅仅为测试 Halo 是否可以正常运行,如果我们关闭 ssh 连接,Halo 也将被关闭。要想一直处于运行状态,请继续看下面的教程。

进阶配置

上面我们已经完成了 Halo 的整个配置和安装过程,接下来我们对其进行更完善的配置

实现以上功能我们只需要新增一个配置文件即可,也就是使用 Systemd 来完成这些工作

1
2
# 下载 Halo 官方的 halo.service 模板
sudo curl -o /etc/systemd/system/halo.service --create-dirs http://halo.ryanc.cc/config/halo.service

下载完成之后,我们还需要对其进行修改。

1
2
# 修改 halo.service
sudo vim /etc/systemd/system/halo.service

打开之后我们可以看到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[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 YOUR_JAR_PATH
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

提示

1.如果你不是按照上面的方法安装的 JDK,请确保 /usr/bin/java 是正确无误的。

2.systemd 中的所有路径均要写为绝对路径,另外,~ 在 systemd 中也是无法被识别的,所以你不能写成类似 ~/halo-latest.jar 这种路径。

3.如何检验是否修改正确:把 ExecStart 中的命令拿出来执行一遍。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload

# 使 Halo 开机自启
sudo systemctl enable halo

# 启动 Halo
sudo service halo start

# 重启 Halo
sudo service halo restart

# 停止 Halo
sudo service halo stop

# 查看 Halo 的运行状态
sudo service halo status

完成以上操作即可通过 IP:端口 访问了。

如果发现无法访问,请查看你服务器的防火墙是不是放行了端口

不过在此之前,最好先完成后续操作,我们还需要让域名也可以访问到 Halo,请继续看

配置域名访问

  1. 假设你已经成功配置并运行好了 Halo,且不是使用 80 端口运行。
  2. 请确保域名已经成功解析到服务器 IP,并确认服务器是否需要备案。
  3. 请检查服务器的 80 和 443 端口是否开放。
  4. 如 3 所述,如果你使用了类似 宝塔面板 之类的 Linux 管理面板,可能还需要在面板里设置端口。
  5. 并不一定要求按照下列教程操作,这里仅仅以供参考。
  6. 如 2 所述,你需要做的仅仅是反向代理 Halo 运行端口,并配置 SSL 证书而已,所以并不要求配置方式

使用 Nginx 进行反向代理

安装 Nginx

1
2
3
4
5
6
7
8
9
10
11
# 添加 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

1
2
# 下载 Halo 官方的 Nginx 配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs http://halo.ryanc.cc/config/nginx.conf

下载完成之后,我们还需要对其进行修改

1
2
# 使用 vim 编辑 halo.conf
vim /etc/nginx/conf.d/halo.conf

打开之后我们可以看到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 改为自己的域名。

修改完成之后

1
2
3
4
5
# 检查配置是否有误
sudo nginx -t

# 重载 Nginx 配置
sudo nginx -s reload

配置 SSL 证书

在这里只演示如果自动申请证书,如果你自己准备了证书,请查阅相关教程

1
2
3
4
5
6
7
8
# 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python2-certbot-nginx -y

# 执行配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx

# 自动续约
sudo certbot renew --dry-run

到这里,关于 Nginx 的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了

在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功

使用 Caddy 进行反向代理

Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)

安装 Caddy

1
2
# 安装 Caddy 软件包
yum install caddy -y

配置 Caddy

1
2
# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs http://halo.ryanc.cc/config/Caddyfile

下载完成之后,我们还需要对其进行修改

1
2
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们可以看到

1
2
3
4
5
6
7
https://www.simple.com {
gzip
tls xxxx@xxx.xx
proxy / localhost:port {
transparent
}
}
  1. 请把 https://www.simple.com 改为自己的域名。
  2. tls 后面的 xxxx@xxx.xx 改为自己的邮箱地址,这是用于自动申请 SSL 证书用的。需要注意的是,不需要你自己配置 SSL 证书,而且会自动帮你续签。
  3. localhost:port 请将 por 修改为 Halo 的运行端口,默认为 8090

修改完成之后启动 Caddy 服务即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 开启自启 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 会出现该问题。

但是我遇到一个奇怪的问题,我部署在阿里云的服务器上,然后绑的腾讯云的域名,结果就一直出现连接已重置的现象,但是当换到阿里云的域名后,却又可以正常访问了。

进阶设置

多网址重定向到主网址,比如访问 simple.com 跳转到 www.simple.com 应该怎么做

1
2
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们在原有的基础上添加以下配置

1
2
3
https://simple.com {
redir https://www.simple.com{url}
}

https://simple.comhttps://www.simple.com{url} 修改为自己需要的网址就行了,比如我要求访问 ryanc.cc 跳转到 www.ryanc.cc,完整的配置如下:

1
2
3
4
5
6
7
8
9
10
11
https://ryanc.cc {
redir https://www.ryanc.cc{url}
}

https://www.ryanc.cc {
gzip
tls i@ryanc.cc
proxy / localhost:8090 {
transparent
}
}:

最后我们重启 Caddy 即可。

到这里,关于 Caddy 反向代理的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。

在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功

更新 Halo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 备份旧的安装包
mv halo-latest.jar halo-latest.jar.bak

# 下载最新的 Halo 安装包,{{version}} 为版本号,不带 v
wget http://halo.ryanc.cc/release/halo-{{version}}.jar -O halo-latest.jar

# 或者
wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar

# 或者,{{version}} 为版本号,不带 v
wget https://halo.nova.moe/release/halo-{{version}}.jar -O halo-latest.jar

# 备用地址(建议海外服务器使用)
wget https://github.com/halo-dev/halo/releases/download/v1.2.0/halo-1.2.0.jar -O halo-latest.jar

# 重启应用
service halo restart

安装完之后你可能需要做的

修改博客地址

很多人在部署完成之后都会惊奇的发现,博客前台居然没有样式?究其原因就是无法获取到静态资源,那么为什么获取不到呢?那就是你的博客地址没有设置正确。

第一步:

登录到后台之后,进入 博客设置 -> 其他设置。

你问怎么访问后台? 地址栏输入 ip+端口号/admin 即可

第二步:

修改你的博客地址:

  • 如果你没有进行域名解析或者没有配置反向代理,那么博客地址一般为 http://ip:端口
  • 如果你进行了域名解析且配置了反向代理,但是没有配置 SSL 证书,那么博客地址一般为 http://域名
  • 如果你进行了域名解析、配置了反向代理、也配置了 SSL 证书,那么博客地址一般为 https://域名

说了这么多,就是希望你别把 http:// 或者 https:// 搞混了

别跟我以前一样搞混然后尴尬了

另外,需要注意的是,地址尾部不需要 /

注册 Gravatar

其实评论部分调用的头像并不是在个人资料中设置的那个,而是 Gravatar

至于什么是 Gravatar,引用 Gravatar 官方的说明:全球公认的头像。

这可不是在吹牛,因为只要接入了 Gravatar 的网站,你在网站上使用在 Gravatar 注册的邮箱之后,都会显示你设置的头像,而不需要额外设置。比较出名的网站有 GithubGitlabV2ex

点击注册gravatar

SMTP 服务

SMTP 服务,简称发信服务,顾名思义就是用来发邮件的

这个东西有两个作用

  1. 评论通知,收到评论之后发信通知博主,评论者被回复之后发信通知被评论者
  2. 找回密码

第一步:

登录到后台之后,进入 系统 -> 博客设置 -> SMTP 设置。

第二步:

勾选 是否启用,并配置相关信息:

  1. SMTP 地址,到邮箱服务商查询。举两个例子:QQ 邮箱(smtp.qq.com),163 邮箱(smtp.163.com)
  2. 发送协议:一般不修改,具体可到邮箱服务商查询。
  3. SSL 端口:一般不修改,具体可到邮箱服务商查询。
  4. 邮箱账号:你的账号
  5. 邮箱密码:你的密码
  6. 发件人:随意

第三步:

点击发送测试,填上你可以接收到的邮箱,并填写测试内容,最后点击发送。不出意外就可以发送成功,失败了就检查下配置吧。

日常问答环节:

Q:为啥我明明没配置错误,还是发送失败呢?

A:肯定配置错了,如不知道哪里错误,请查看日志。点击左上角 Halo Dashboard即可进入开发者选项,点击 实时日志 即可看到最近的日志。

Q:日志说我授权出错,但是我密码明明是对的啊!

A:部分邮箱所谓的密码并不是你的登陆密码,需要去邮箱服务商生成 授权码。这个才是你需要填写的。

设置统计代码

第一步:

登录到后台之后,进入 系统 -> 博客设置 -> 其他设置。

第二步:

网站统计平台 提供给你的一串代码填写到 统计代码 即可

又到了喜闻乐见的问答环节:

Q:什么是网站统计平台?

A:如果你不知道,那就没必要设置了。

这个都不知道干脆别弄了

主题

当你搭建好博客之后,如果你不喜欢默认的主题,那么你可以去 主题商店 选择你喜欢的主题。在这里主要讲一些注意事项。

如何安装?

登录到后台之后,进入 外观 -> 主题,在后下角有一个按钮,点击之后选择 安装主题。系统提供的两种安装方式

  1. 第一种,远程拉取。你只需要把主题的 Github 地址复制进去点击下载即可
  2. 第二种,本地上传,你需要将主题安装包下载到本地,然后选择 本地上传 点击选择你下载好的主题即可

不过还是推荐本地上传,不过本地上传需要你把主题文件弄成 zip 才能上传

设置主题

提醒一下,一般情况下,每个主题都是有单独的设置选项的

点击主题下方的设置按钮即可进入主题设置。另外主题设置还有一种预览模式,可以实时查看主题设置变更后的效果。当你设置当前激活主题的时候,在页面右下角有一个 预览模式 的按钮,点击即可进入预览模式。

设置备案信息

由于后台博客设置并没有提供设置备案信息的选项,所以有很多人不知道该怎么添加备案信息,这里简单说明一下

第一步:

登录到后台之后,进入 系统 -> 博客设置 -> 常规设置。

这时候你应该可以看到一个 页脚信息 的选项,而且有提示 支持 HTML 格式的文本 。所以我们把备案信息放在这里即可。

不会有人不会写这个吧,这么简单的东西

第二步:

将整理好的备案信息填写到页脚信息即可,如果没记错的话,公安联网备案是有提供 网站公安机关备案号备案编号HTML代码

提醒:我以亲身经历提醒一下,有了备案号一定要及时加上去,不然后果很严重!!!!!

一些隐藏功能

在某些情况下,你可能不知道 Halo 还提供了一些不可见的功能,下面将一一介绍一下。

订阅地址

目前支持两种协议的订阅地址,参考如下:

  • 普通:你的博客地址/rss or /rss.xml or /feed or /feed.xml
  • Atom:你的博客地址/atom or /atom.xml

站点地图

站点地图同样提供了两种形式,一种 html 格式的,一种 xml 格式的

  • html 格式:你的博客地址/sitemap.html
  • xml 格式:你的博客地址/sitemap.xml

这里要说一下百度的效率真的好慢!!! 还不如360快

博主头像的统一地址

一般情况下,如果你经常更换你头像的话,那么地址是会不断变化的。

假设你在给别人友链的时候,你还需要通知对方修改你的头像地址,比较繁琐。所以 halo 提供了一个地址,不管你头像怎么换,地址始终如一

你的博客地址/avatar

以后可以随心所欲的换老婆了?!!

开发者选项

这个功能是在 1.2.0 的时候引入的,你需要更新到 1.2.0 才能使用。

为了防止用户随意修改一些危险的内容,官方将其做了隐藏处理。如果你觉得你有能力使用好这项功能,那么请继续看下去

没能力就不要作死了

如何打开

登录到后台之后,点击左上角的 Halo Dashboard 10次即可开启开发者选项,入口在 系统 -> 小工具 -> 开发者选项

感觉和手机上一样的

运行环境

这个功能没有实际的操作,仅仅是展示一些你服务器以及 Halo 应用的一些使用情况

实时日志

这个功能可以很方便的查看当前的日志,并且可以下载。

系统变量

这个功能比较危险,操作时请注意相关提示。这个功能是列表出了系统当前所有的设置选项以及相关信息。对应数据库的 options 表,需要注意的是,标注了 系统 类型的设置选项请尽量不要修改。你可以自己添加 自定义 的设置选项,且可以在页面引用。例如你添加了一个 keywelcome_words 的设置选项,那么在页面引用则是 ${options.welcome_words}

配置文件

这个功能比较危险,操作时请同样注意相关提示,这个功能的主要目的是在线即可修改 Halo 的一些运行配置,不需要进入服务器修改。带来便利的同时,也请认真使用。一旦出现配置问题,那么 Halo 将无法启动,建议修改前先备份配置文件。另外,在下方有一个 重启 按钮,在修改了配置文件之后,你可以点击这个按钮进行重启,也无需登陆服务器进行操作。

静态存储

这个功能相当于提供了一个网站根目录,假设你在某平台遇到了验证网站需要上传一个文件到根目录进行验证的情况,那么你就可以在这里上传。当然,你也可以放一些其他东西,比如静态网页等。

常见问题

好了,又到了喜闻乐见的你问官方答了

看看官方是怎么回答各种各样的问题吧

为什么默认的数据库是使用的 H2,而不是 MySQL?

虽然 Halo 支持 MySQL,但是Halo作者并不建议使用 MySQL,因为一个博客而已,完全没必要单独跑一个 MySQL 服务

使用 H2 的优劣

优点:

  • 能更快的完成 Halo 的搭建。
  • 无需单独安装 H2,数据库随着 Halo 的启动而创建
  • 比 MySQL 更节省资源占用,尤其是你的服务器配置不佳的情况下
  • 性能方面与 MySQL 基本无异(对于这种小型应用),实测 1000 篇文章的情况下,毫无压力
  • 不会因为某个配置不对而导致 Halo 无法正常使用,没有乱七八糟的问题
  • 更符合 Halo 数据架构的特点,所有数据(数据库物理文件,主题文件,上传的附件,日志等)均放在 ~/.halo 文件夹内,所以备份迁移极其方便
  • 如上所述,目前所有备份相关的功能均针对 H2。MySQL 的备份暂无计划
  • 一个误解:很多人认为 H2 通常仅作为开发环境测试所用,生产环境并不适用。错误的说法!请针对实际情况做选择。Halo 甚至可以支持 Oracle,但是有必要吗?作者已经使用两年,所以放心使用

缺点:

  • 管理不方便,虽然有在线的控制台,但是并不好用。

使用 MySQL 的优劣:

优点:

  • 管理方便,你可以开启远程连接,在自己电脑即可管理数据库。不过目前官方已经做了一些 开发者功能,似乎也没必要怎么管理

缺点(仅针对于 Halo):

  • 部署麻烦,还需要单独跑一个 MySQL,不能做到 Halo 开箱即用
  • 占用内存,尤其是你服务器内存不够的情况下,宛如雪上加霜。当然,服务器强壮的话可无视。
  • 版本太多,当你安装了一个 Halo 不支持的版本(目前支持 5.7+)的时候,可能会无法正常使用,甚至无法正常启动。
  • 配置繁琐,你可能需要配置如字符集这样的东西,对新手来说极不友好。(字符集 utf8mb4 collate utf8mb4_bin)
  • 备份迁移麻烦,你不但需要备份 ~/.halo,还需要导出数据库脚本。
  • 目前暂不支持后台备份 MySQL 数据。

为什么上传主题或者附件会失败?

这可能是由于 Nginx 的上传大小限制所导致的。可以在 Nginx 的配置文件下的 server 节点加入 client_max_body_size 1024m; 即可解决,如果 1024m 还不够,请自行断定,详细配置参考如下

1
2
3
4
5
server {
listen 80;
server_name localhost;
client_max_body_size 1024m;
}

如果想要禁用 client_max_body_size,请将值设置为 0

为什么有些页面访问 404?

这可能是由于主题没有对应的模板导致的,假如我们需要访问所有分类目录的页面 (/categories),但是你使用的主题下面并没有 categories.ftl 这个模板,就会导致 404。

再比如我们需要访问相册页面 (/photos),但是当前使用的主题下面并没有 photos.ftl 这个模板,所以也是无法访问的,页面能否访问的前提条件是有没有对应模板。

总之,看主题支持情况,就目前来说,绝大部分已有主题是支持 /(首页)/archives(归档)/links(友情链接)/tags(标签列表)/archives/{url}(文章页面) 等页面的渲染的。另外,对于没有的模板,可以自行拓展哦。

为什么不支持 war 包部署?

理论上 Spring Boot 是提供 war 包的打包方式的,但是官方不提供 war 包。并且并没有使用 war 包进行测试,如果你非要使用,请自行打包并承担所有未知的问题。

安装完成之后前台页面无样式

请前往后台的博客设置,检查博客地址设置项是否正确,注意 httphttps 的区分

后记

目前 Halo 只能在服务器上运行,不过看社区的消息,后面会支持放在 github pages 上,这是一个好消息

因为服务器费用并不是一个小开支,当然如果是学生优惠就另说

对于目前流行的 Hexo 来说,Halo虽然年轻,但是它的管理相当方便,界面也很简洁

对于小白来说是一个很好的选择

而且 halo 支持把 Hexo 上发布的文章搬迁过来,只要上传相关 md 文件就行

希望 Halo 可以越来越好!

----------------本文结束感谢阅读----------------
如果觉得文章好的话,就打个赏吧!
隐藏