我花了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
现在可以安心的捯饬自己的博客了。。。
Some 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以下浏览器。
学习是一条令人时而喜极若狂、时而郁郁寡欢的道路”。部署的时候肯定有不顺利的地方,但是你慢慢摸索的过程就是你学习收获的过程。 -----------敖丙
参考链接: