linux搭建halo博客
jar包搭建(远古时代的部署教程了,要考古的可以看看,推荐看下面的docker搭建halo)
慢快速搭建
linux安装halo官方文档:https://docs.halo.run/install/linux
先去官网下载:https://dl.halo.run/release/
官方主题仓库:https://halo.run/themes.html
也可以使用wget下载到服务器: wget https://dl.halo.run/release/halo-1.4.8.jar
安装java环境:yum install java-11-openjdk -y
启动halo:java -jar halo-1.4.8.jar
访问默认的http://ip:8090即可进入安装引导界面,如果无法访问检测以下防火墙是否开启,如果开启了是否允许该端口被访问(比如阿里云就需要去控制台添加相应访问规则)
注:如果启动时报错,那可能jdk版本不兼容,比如你用jdk1.8去启动halo-1.4.8.jar就会报错,我之前是之前yum安装的java-1.8.0-openjdk,就报错了,当时便有了以下思路,一用低一点版本的halo,如halo-1.4.6.jar去适配jdk1.8,二可以选择卸载原有jdk,安装更高版本的jdk,三使用docker搭建halo,与宿主机分离,不改变宿主机环境
此处我选择了第二个方法,原因是软件用新不用旧,旧版本虽然稳定,但是存在漏洞的概率也更高(或者有的软件旧版本本就存在着一些漏洞),对于有的软件我们是“能用就行,绝不升级”的原则,但这个halo我们还是尽量用新版。直接yum remove java-1.8.0-openjdk
,然后yum install java-11-openjdk -y
,但是使用java -version
还是显示1.8的,于是rpm -qa|grep jdk
,找到1.8的jdk的包名使用rpm -e 完整包名
进行卸载(也可以用yum remove 完整包名
卸载,如:yum remove java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
,yum remove java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
),此时再用java -version
发现jdk版本是11了,也能正常启动halo了
更高的安全性
以下教程来自官方文档
创建新用户和工作目录(如果你是以root身份运行halo服务那么跳过此步骤,如果想要服务器安全性更高可以按照以下步骤操作):
useradd -m halo //创建halo用户,-m在创建用户时创建其家目录
usermod -aG wheel halo //添加sudo权限,关于wheel用户组请自行百度
passwd halo //设置密码
su halo //切换到用户halo
创建运行包
的目录,这里以~/app
为例:
mkdir ~/app && cd ~/app
下载halo的运行包
:
wget https://dl.halo.run/release/halo-1.4.8.jar -O halo.jar
创建工作目录:
mkdir ~/.halo && cd ~/.halo
下载示例配置文件到工作目录(该文件需要放在~/.halo
文件夹中):
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
运行halo:
cd ~/app && java -jar halo.jar
我们还可以把后台路径改掉,在配置文件application.yaml
中修改即可:
作为服务运行
如果是halo,执行exit退出到root用户
依次执行:
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
vim /etc/systemd/system/halo.service
修改配置
- YOUR_JAR_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号。
- USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=USER
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
重新加载systemd:
systemctl daemon-reload
运行服务:
systemctl start halo
本节最后编辑于2021.12.22,因为之前少写了一步创建工作目录,请见谅
docker搭建halo
注意,如果你只是新安装halo2.8,可以按照以下教程,如果你是要将1.X的halo数据迁移到2.X,那么一定要先看这篇文章:
https://www.cnblogs.com/sillage/p/17602654.html
用宝塔的docker可视化安装
截至23.8.2,halo官方也是更新到了2.8,只支持docker安装方式
此处使用宝塔环境,比较方便
先在宝塔的软件商店里搜索安装【docker管理器】
可参考:https://cloud.tencent.com/developer/article/1774959
打开【docker管理器】,获取镜像,官方镜像填写:halohub/halo
注:
ruibaby/halo:latest 是老仓库,已经不再更新,拉取到的版本是1.4.11
halohub/halo 拉取到的才是最新的
参考配置如下:
/tmp:/root/halo-tmp
,方便在宿主机终端对备份文件的管理
随后新建网站,纯静态,添加域名,其他都不勾选:
最后对网站设置反向代理:
docker命令安装
由halo官方提供:
docker run \
-it -d \
--name halo \
-p 8090:8090 \
-v ~/.halo2:/root/.halo2 \
halohub/halo:2.8 \
--halo.external-url=http://localhost:8090/ \
--halo.security.initializer.superadminusername=admin \
--halo.security.initializer.superadminpassword=P@88w0rd
踩坑
其实官方的安装方式写的很详细,甚至docker创建容器时的各个参数的作用都写出来了。
但是有的小伙伴在执行官方的docker拉取命令会报错,如:Unable to find image 'halohub/halo:2.8' locally
这是因为你没有更好docker源,bing搜索一下更换docker源就可以了:
vim /etc/docker/daemon.json
添加:
{
"registry-mirrors": [
"https://registry.hub.docker.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
如果更换了源还是不行,那么很有可能是docker版本问题,比如你是直接yum install docker安装的docker,那么docker版本比较老。
安装docker新版本有一种简单快速的方式,就是通过宝塔安装,在宝塔的软件商城搜索docker,安装3.9.1的稳定版就可以了。
安装好后,可以在宝塔管理docker,也可以在终端用命令管理docker
然后再拉取halo2.8镜像就没有问题
如果你还有问题,你可以添加我的qq联系我。有偿帮助。
参考:
https://github.com/halo-dev/halo/issues/4142
https://github.com/halo-dev/halo/issues/4058
https://github.com/halo-dev/halo/issues/3809
本节最后更新于2023.8.3
halo全站恢复
简单测试
此次实验将阿里云centos7的整站备份传到VMware的centos7中,
解压将.halo文件夹覆盖,启动halo服务,完美移植,爽
实验环境:
centos7
halo版本1.4.8
java环境jdk11
踩坑日志
当使用halo用户运行服务时,是无权使用80端口的,所以修改application.yaml里面为80端口是无效的
可以参考:https://github.com/halo-dev/halo/issues/1268
本节最后编辑于2022-1-25
最后
来看看本人Sakura主题的halo博客效果吧:https://sillage.wang/
有什么问题多看官方文档,写得比较详细,此处就不搬运了:https://docs.halo.run/