我花了3小时用Halo搭建了一个博客

前言

过年期间实习公司不必996了,刷刷博客园,看到了一个名字特有趣,“敖丙”。人如其名,热情洋溢、敢破敢立。翻到他的《程序人生》系列,有一篇“如何从0到1搭建一个可以外网访问的项目”。呀!听起来怎么这么适合我这种哪方面都是0的小白呢!

站在巨人的肩上,搭建很容易。如果想要深究halo的技术,那......就搭建好了再深究叭!

halo代码已开源,源码里可以找到所有东西,搭建博客仅需以下前提:

  • Linux 基础
  • 已配好服务器CentOS 7.X 512MB以上内存
  • H2数据库基础
  • 工具:IntelliJ IDEA(用来查看源码,但本文内容用不到),xshell ,文件传输工具iFt

服务器配置

更新软件包

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

sudo yum update -y
检查是否已经安装Java运行环境
java -version
若未安装则执行
sudo yum install java-1.8.0-openjdk -y

Halo安装包下载运行

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

下载
wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar
启动测试
java -jar halo-latest.jar

现在已经可以看到成果了~

进入浏览器,输入服务器ip:8090,回车。按照步骤,注册,登录进入后台,已经贴心地为您准备好了1篇Hello,Halo的文章。

但此时,如果我们关闭 ssh 连接,Halo 也将被关闭。要想一直处于运行状态,继续配置。。。

开机自启

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

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

将ExecStart命令后面的JAR_PATH修改成上面下载的Halo安装包的绝对路径

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

# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload

# 使 Halo 开机自启
sudo systemctl enable halo

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

现在可以安心的捯饬自己的博客了。。。

Tips

  • 多次启动运行

设置了【开机自启】后,已开始静默运行Halo了,若再执行java -jar halo-latest.jar或者halo.service中的ExecStart命令,会抛出异常。

org.h2.jdbc.JdbcSQLException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-196]

虽然xshell报错,但是对博客后台及前台展示均无影响。。我就忽略了。。。

解决方案是kill之前已经启动的halo。

  • 【开机自启】步骤中curl命令显示Failed connect to halo.ryanc.cc:80; Connection timed out

不知道为什么下载不下来,是不是我用公司内网的原因。。。

解决措施:在windows下浏览器进入http://halo.ryanc.cc/config/halo.service下载,在服务器中用iFt工具执行ft get把halo.service从PC上传到服务器指定目录。

  • 后台入口

在前台的展示页面费老大劲没找到后台入口,现在的进入方法是直接链接访问:ip:8090/admin

  • 域名访问

嘿嘿,作者没有域名,也就不放自己的博客链接啦,有配置需求的同志参考这里配置域名访问

  • idea导入halo报springBoot2.1.3.RELEASE找不到

可能是依赖没有成功下载。Halo 使用的是 gradle 构建的,所以建议更新 IDEA 或者使用最新的 IDEA 社区版。

  • Halo不支持ie10以下浏览器。

敖丙说,“学习是一条令人时而喜极若狂、时而郁郁寡欢的道路”。部署的时候肯定有不顺利的地方,但是你慢慢摸索的过程就是你学习的收获的过程。

参考链接:

  1. 敖丙教你搭个面试项目
  2. 在Linux服务器部署Halo
  3. Halo-一款现代化的个人独立博客系统

猜你喜欢

转载自www.cnblogs.com/gongzi-blog/p/12213996.html
今日推荐