我花了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以下瀏覽器。

學習是一條令人時而喜極若狂、時而郁郁寡歡的道路”。部署的時候肯定有不順利的地方,但是你慢慢摸索的過程就是你學習收獲的過程。 -----------敖丙

參考鏈接:

  1. 敖丙教你搭個面試項目
  2. 在Linux服務器部署Halo
  3. Halo-一款現代化的個人獨立博客系統


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM