前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用宝塔部署halo博客

使用宝塔部署halo博客

原创
作者头像
樱次元
发布于 2022-07-04 04:07:27
发布于 2022-07-04 04:07:27
3K01
代码可运行
举报
文章被收录于专栏:二次元博主二次元博主
运行总次数:1
代码可运行

halo搭建

软件环境

Halo 理论上可以运行在任何支持 Java 的平台。

JRE(Java Runtime Environment)

必须在运行环境安装好 JRE,这是运行 Halo 所要求的的最低软件环境要求。如果您使用 Docker 运行 Halo,可忽略此要求。 从 1.4.3 起,版本要求为 11 以上的版本。1.4.3 以下需要 1.8 以上的版本。

MySQL(可选)

这并不是 Halo 必须依赖的,Halo 默认使用自带的 H2 Database,无需单独安装。如果 H2 Database 不能满足你的要求,您需要在系统内安装并运行好 MySQL具体要求:

  1. 版本:5.7 +
  2. 字符集(Character Set):utf8mb4
  3. 排序规则(Collate):utf8mb4_bin
  4. 存储引擎:InnoDB
Supervisor管理器

一个Python开发的通用的进程管理程序,用来管理halo运行进程,实现常驻后台。

安装教程

安装JRE 11
CentOS
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install java-11-openjdk -y

检查版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -version

如果输出以下类似内容即代表成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openjdk version "11.0.10" 2021-01-19 LTSOpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)
Ubuntu
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install openjdk-11-jre -y

检查版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -version

如果输出以下类似内容即代表成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openjdk version "11.0.10" 2021-01-19OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode)
创建新的系统用户

不推荐直接使用系统 root 用户来运行 Halo。如果您需要直接使用 root 用户,请跳过这一步。 教程使用root账户来示例。 创建一个名为 halo 的用户(名字可以随意)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd -m halo

给予 sudo 权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
usermod -aG wheel halo

为 halo 用户创建密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
passwd halo

登录到 halo 账户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - halo
安装halo

来到宝塔创建网站,设置目录以方便放程序文件

cd进入网站目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /www/wwwroot/ecy
下载运行包
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://dl.halo.run/release/halo-1.5.3.jar -O halo.jar 
创建halo工作目录

Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 .halo 的文件夹,绝对路径为 ~/.halo。由于这个工作目录是固定的,所以上面所说的 运行包不限制所存放的位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir ~/.halo && cd ~/.halo
下载示例配置文件到工作目录
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml 
测试运行 Halo

进入网站目录执行运行命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /www/wwwroot/ecy && java -jar halo.jar

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/adminrun.halo.app.listener.StartedListener    : Halo has started successfully!

PS:配置数据库或者端口等,如需配置请参考 配置参考 别忘记在宝塔的防火墙或者服务器防火墙放行halo端口

使用 Supervisor 托管 Halo 进程

打开 Supervisor 管理器的设置,点击 添加守护进程 按钮。

需要填写的表单信息如下:

名称:随意 启动用户:如果您按照 在 Linux 环境部署 创建了用于运行 Halo 的用户,则选择您创建的用户即可。否则选择默认的 root。 运行目录:运行包的存放目录,按照实际情况填写,需要保证你所选的目录包含运行包。 启动命令:java -server -Xms256m -Xmx256m -jar halo.jar 填写完成之后点击 确定 按钮即可。

使用反代理实现域名访问halo

在反代理之前建议部署ssl证书。我这边使用宝塔免费证书示例,需要开启强制ssl

添加反代理

目标URL设置你配置的即可。我这边没用做任何修改端口,使用默认8090端口。也在宝塔防火墙放行。

访问域名即可进行 Halo 的初始化。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Linux 实用运维脚本分享
#查看僵尸进程 ps -al | gawk '{print $2,$4}' | grep Z # 匹配电子邮件的地址 cat index.html | egrep -o "[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}" > ans.txt #匹配http URL cat index.html | egrep -o "http://[A-Za-z0-9.]+\.[a-zA-Z]{2,3}" > ans.txt #纯文本形式下载网页 lynx -dump w
杰哥的IT之旅
2022/09/02
6.9K0
SecureCRT 命令行备注「建议收藏」
Non-authoritative answer: Name: a.kaixin001.com Addresses:
全栈程序员站长
2022/11/01
1.3K0
【建议收藏】Linux工作/面试常用命令集锦
管道符“|”将两个命令隔开,左边命令的输出作为右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推
JavaEdge
2021/12/07
8800
【建议收藏】Linux工作/面试常用命令集锦
Linux命令行的艺术
熟练使用命令行是一种常常被忽视或被认为难以掌握的技能,但实际上,它可以提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时发现的一些关于命令行的使用的小技巧的摘要。有些小技巧是非常基础的,而另外一些则是相当复杂的甚至晦涩难懂的。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 必读 涵盖范围: * 这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广(尽量包括一切重要的内容),具体(给出最常见的具体的例子)以及简
小小科
2018/05/03
7.3K0
Linux常用50个命令分享:功能、示例与实用技巧
公众号:码到三十五
2024/03/19
6980
Linux命令必知必会
第一行中,03:30:22是当前时间,up 39 min是系统运行的运行了多长时间,1 user指出了当前有几个用户登录到系统,load average指的是系统负载,这后面的三个值分别是1分钟,5分钟,15分钟的系统负载平均值。
用户2131907
2018/05/15
4K4
linux常用命令汇总_unix命令大全
for i in in {1..10}; do rm -f hadoop-cmf-hive-HIVEMETASTORE-nn1.testhdp.com.log.out.$i;done
全栈程序员站长
2022/11/09
6.2K0
linux常用命令汇总_unix命令大全
10分钟让你掌握Linux常用命令(+1万+++收藏)
split命令:可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
全栈程序员站长
2022/07/01
3K0
10分钟让你掌握Linux常用命令(+1万+++收藏)
shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅
Linux命令的通用命令格式:命令字 [选项] [参数] 选项及参数的含义 选项:用于调节命令的具体功能 以 “-”引导短格式选项(单个字符),例如“-l” 以“--”引导长格式选项(多个字符),例如“--color” 多个短格式选项可以写在一起,只用一个“-”引导,例如“-al” 参数:命令操作的对象,如文件、目录名等
青灯古酒
2023/10/16
6830
shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅
蓝桥ROS机器人之命令行实践
参考网址: github.com/jlevy/the-art-of-command-line 直接选择简体中文实践即可。 github.com/jlevy/the-art-of-co
zhangrelay
2022/05/01
8980
蓝桥ROS机器人之命令行实践
ubuntu 小技巧
InterWikiMap: Ubuntu技巧 (2007-02-21 16:51:22由huangjiahua编辑)
全栈程序员站长
2021/05/19
8540
命令行的艺术
熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。
iMike
2019/06/02
1.1K0
Shell(Linux)常用命令
所谓Shell(壳),一般是指由操作系统提供的,用于计算机用户向操作系统输入相关指令并得到结果的程序。Shell可以字符形式的,也可以是图形界面形式的。 Shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序。 在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell(Command shell)。 基础命令行和Shell都可以操作Linux系统,区别在于基础命令行(ls、cd等),是一种单一的操作;Shell可以比基础命令行更复杂,是一种组合型的操作。相比基础命令拥有了面向过程的概念。
十玖八柒
2022/08/01
3.3K0
Shell(Linux)常用命令
mac 终极教程,最全,最实用的教程
备注:我们也可以用「Space」键代替“open”关键字,按下“Space + 文件名字符串”进行搜索,更加方便快捷
AI拉呱
2021/01/14
4.1K0
ubuntu命令大全
查看软件xxx安装内容 #dpkg -L xxx 查找软件 #apt-cache search 正则表达式 查找文件属于哪个包 #dpkg -S filename apt-file search filename 查询软件xxx依赖哪些包 #apt-cache depends xxx 查询软件xxx被哪些包依赖 #apt-cache rdepends xxx 增加一个光盘源 #sudo apt-cdrom add 系统升级 #sudo apt-get update #sudo apt-ge
闵开慧
2018/03/30
2.7K0
命令行界面 (CLI)、终端 (Terminal)、Shell、TTY,这些都是啥意思?
为什么突然想写这样一篇文章呢?其实是因为在最近计划发布的一篇关于 WSL (Windows Subsystem for Linux) 的博文中,我打算对终端模拟器、Shell 的选择与配置进行一些说明。不过对于刚接触 Linux 或者刚接触命令行界面的同学,可能会有些难以理解它们之间的区别(事实上我当初也是这样)。
明月登楼
2018/08/25
5.2K0
命令行界面 (CLI)、终端 (Terminal)、Shell、TTY,这些都是啥意思?
内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助
/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息
青灯古酒
2023/10/16
4800
内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助
技能篇:开发必备linux命令大全-稳赚不亏
我们的服务一般都是在linux系统运行,因此了解一些关于linux命令是必须。接下来将一一详细介绍一些常用的linux的命令
潜行前行
2021/08/20
4.5K0
技能篇:开发必备linux命令大全-稳赚不亏
Win10 CMD命令大全与超好用的快捷键
按组合键 Win(Windows图标键)+R 键打开运行窗口,输入“cmd”按回车即可打开cmd命令提示符
全栈程序员站长
2022/09/02
4.1K0
Win10 CMD命令大全与超好用的快捷键
工作常用linux命令「建议收藏」
Q:添加了新用户bae,sudo一条安装命令后报错xxxis not in the sudoers file. This incident will be reported. 需要允许用户youuser执行sudo命令(需要输入密码),怎么做: 1、切换到root用户下 2、/etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,命令是: 即执行操作:chmod u+w /etc/sudoers 3. 编辑sudoers文件 即执行:vi /etc/sudoers 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
全栈程序员站长
2022/11/08
2.9K0
推荐阅读
相关推荐
Linux 实用运维脚本分享
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档