用Halo在自己服務器搭建一個個人博客

本文主要講解一下如何從零基礎到搭建出一個個人的博客

在講解之前,我先說明一下相關的東西。

1.Halo簡介

Halo 是一款現代化的個人獨立博客系統,給習慣寫博客的同學多一個選擇。
Halo [ˈheɪloʊ],意爲光環。當然,你也可以當成拼音讀(哈嘍)。
輕快,簡潔,功能強大,使用 Java 開發的博客系統。

2.Linux服務器安裝

本教程以Centos7爲例,配置並運行 Halo,其他 Linux 發行版大同小異。

2.1.寫在前面
具備一定的 Linux 基礎。
如需域名綁定,請先保證已經正確解析 IP,以及確認服務器是否需要備案。
如需使用 IP 訪問,請先確保 Halo 的運行端口已經打開,除非你使用 80 端口運行 Halo。
如 3 所述,如果你使用了類似 寶塔面板 之類的 Linux 管理面板,可能還需要在面板裏設置端口。
不要想當然,請嚴格按照文檔的流程操作。

3.正題:

接下來咱們講一講有關服務器的,這裏我購買的是阿里巴巴的服務器,因爲是學生,所以現在有些優惠,下面就是,這裏我推薦購買centos.
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Hwo9FIM5-1581497952346)(http://39.102.36.205:8090/upload/2020/2/image-8b1a214030864652bbba65351a357914.png)]

購買之後,就會有這樣的一個界面
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LI0aVXUA-1581497952348)(http://39.102.36.205:8090/upload/2020/2/image-fcba069053e54a1aabd1bfb4523e4d93.png)]

點擊進入,通過Xshell遠程連接,進入控制檯
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-y01kICKP-1581497952355)(http://39.102.36.205:8090/upload/2020/2/image-eb786337ba964f6d8fcb81f4ef37509f.png)]

下面開始最重要的

4.服務器配置

更新軟件包
請確保服務器的軟件包已經是最新的。

sudo yum update -y

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-PrMezey5-1581497952356)(http://39.102.36.205:8090/upload/2020/2/image-1e4425fc351f43d69521206d46eb97a7.png)]

安裝 Java 運行環境
若已經存在 Java 運行環境的可略過這一步。

java -version

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kzig6lXo-1581497952357)(http://39.102.36.205:8090/upload/2020/2/image-7f80502ae2d14a2e95d3dbc61b3417f9.png)]

當然,這只是其中一種比較簡單的安裝方式,你也可以用其他方式,並不是強制要求使用這種方式安裝。

5.安裝 Halo

5.1.下載配置文件

curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-S3WMswyR-1581497952358)(http://39.102.36.205:8090/upload/2020/2/image-8b5eebe79f1a488ead9ff1445fa1ce10.png)]

修改配置文件
完成上一步操作,我們就可以自己配置 Halo 的運行端口,以及數據庫相關的配置了。

5.2.使用 Vim 工具修改配置文件

vim ~/.halo/application.yaml

打開之後我們可以看到

server:
  port: 8090

  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:

    # H2 database configuration.
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: 123456

    # MySQL database configuration.
#    driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
#    username: root
#    password: 123456

  # H2 database console configuration.
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level
  cache: memory

1.如果需要自定義端口,修改 server 節點下的 port 即可。

2.默認使用的是 H2 Database 數據庫,這是一種嵌入式的數據庫,使用起來非常方便。需要注意的是,默認的用戶名和密碼爲 admin 和 123456,這個是自定義的,最好將其修改,並妥善保存。

3.如果需要使用 MySQL 數據庫,需要將 H2 Database 的所有相關配置都註釋掉,並取消 MySQL 的相關配置。另外,MySQL 的默認數據庫名爲 halodb,請自行配置 MySQL 並創建數據庫,以及修改配置文件中的用戶名和密碼。

4.h2 節點爲 H2 Database 的控制檯配置,默認是關閉的,如需使用請將 h2.console.settings.web-allow-others 和 h2.console.enabled 設置爲 true。控制檯地址即爲 域名/h2-console。注意:非緊急情況,不建議開啓該配置。

5.server.compression.enabled 爲 Gzip 功能配置,如有需要請設置爲 true,需要注意的是,如果你使用 Nginx 或者 Caddy 進行反向代理的話,默認是有開啓 Gzip 的,所以這裏可以保持默認。

6.halo.admin-path 爲後臺管理的根路徑,默認爲 admin,如果你害怕別人猜出來默認的 admin(就算猜出來,對方什麼都做不了),請自行設置。僅支持一級,且前後不帶 /。

7.halo.cache 爲系統緩存形式的配置,可選 memory 和 level,默認爲 memory,將數據緩存到內存,使用該方式的話,重啓應用會導致緩存清空。如果選擇 level,則會將數據緩存到磁盤,重啓不會清空緩存。如不知道如何選擇,建議默認。

這裏我就不進行修改了,有興趣的可以改改。

注意
使用 MySQL 之前,必須要先新建一個 halodb 數據庫,MySQL 版本需 5.7 以上。
create database halodb character set utf8mb4 collate utf8mb4_bin;

5.3.運行 Halo
Halo 的整個應用程序只有一個 Jar 包,且不包含用戶的任何配置,它放在任何目錄都是可行的。需要注意的是,Halo 的整個額外文件全部存放在 ~/.halo目錄下,包括 application.yaml(用戶配置文件),template/themes(主題目錄),upload(附件上傳目錄),halo.db.mv(數據庫文件)。一定要保證 ~/.halo的存在,你博客的所有資料可都存在裏面。所以你完全不需要擔心安裝包的安危,它僅僅是個服務而已。

# 下載最新的 Halo 安裝包,{{version}} 爲版本號,不帶 v
wget http://halo.ryanc.cc/release/halo-{{version}}.jar -O halo-latest.jar

# 或者
wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar

# 或者,{{version}} 爲版本號,不帶 v
wget https://halo.nova.moe/release/halo-{{version}}.jar -O halo-latest.jar

# 備用地址(建議海外服務器使用)
wget https://github.com/halo-dev/halo/releases/download/v1.2.0/halo-1.2.0.jar -O halo-latest.jar
# 啓動測試
java -jar halo-latest.jar

如看到以下日誌輸出,則代表啓動成功.

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NHxesala-1581497952359)(http://39.102.36.205:8090/upload/2020/2/image-ba881d72c0d7408cac51951eed9439ba.png)]

5.4.進階配置

上面我們已經完成了 Halo 的整個配置和安裝過程,接下來我們對其進行更完善的配置,比如:需要開機自啓?,更簡單的啓動方式?

實現以上功能我們只需要新增一個配置文件即可,也就是使用 Systemd來完成這些工作。

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

下載完成之後,我們還需要對其進行修改。

sudo vim /etc/systemd/system/halo.service

打開之後我們可以看到

[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
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

參數:

  1. -Xms256m:爲 JVM 啓動時分配的內存,請按照服務器的內存做適當調整,512 M 內存的服務器推薦設置爲 128,1G 內存的服務器推薦設置爲 256,默認爲 256。
  2. -Xmx256m:爲 JVM 運行過程中分配的最大內存,配置同上。
    YOUR_JAR_PATH:Halo 安裝包的絕對路徑,例如 /www/wwwroot/halo-latest.jar。
提示

如果你不是按照上面的方法安裝的 JDK,請確保/usr/bin/java是正確無誤的。
systemd 中的所有路徑均要寫爲絕對路徑,另外,~ 在 systemd 中也是無法被識別的,所以你不能寫成類似 ~/halo-latest.jar 這種路徑。
如何檢驗是否修改正確:把 ExecStart中的命令拿出來執行一遍。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HhHH7uCW-1581497952359)(http://39.102.36.205:8090/upload/2020/2/image-860b3c19fd9d4578acd9d2341bca2782.png)]

# 修改 service 文件之後需要刷新 Systemd
sudo systemctl daemon-reload
# 使 Halo 開機自啓
sudo systemctl enable halo
# 啓動 Halo
sudo service halo start
# 重啓 Halo
sudo service halo restart
# 停止 Halo
sudo service halo stop
# 查看 Halo 的運行狀態
sudo service halo status

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GCIIvins-1581497952360)(http://39.102.36.205:8090/upload/2020/2/image-f9342359c61242b486adc6a7187c9ccf.png)]

以上內容同項目文檔,原文檔地址:在 Linux 服務器部署 Halo
此外,還借鑑了一位學長的博客小張技術博客

5.5.進入Halo

輸入以下網址進入:

http://ip地址:8090/ #這裏的端口使用的是默認的

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mM2KCM5X-1581497952361)(http://39.102.36.205:8090/upload/2020/2/image-7265cb5576a4447d9b35b06ff9b96989.png)]

填好信息後點擊安裝即可

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AmJpjYaC-1581497952362)(http://39.102.36.205:8090/upload/2020/2/image-5cf38a3dfaa54f988f5565165171fee5.png)]

安裝成功後登錄

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-59nUEZ5u-1581497952363)(http://39.102.36.205:8090/upload/2020/2/image-0ed0c6d171f04c39a17789f589a44360.png)]

5.6.安裝成功

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wF3qC0Ci-1581497952364)(http://39.102.36.205:8090/upload/2020/2/image-df33708aa3b940e7bd8960df582aab4a.png)]

網站主頁的默認主題是這種,可以修改。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MjnJ7bk7-1581497952364)(http://39.102.36.205:8090/upload/2020/2/image-1b1baa9ced8c47618316d5880e2e378c.png)]

6.修改博客主題

主題倉庫地址:地址

6.1.主題倉庫

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UBRzwiwj-1581497952365)(http://39.102.36.205:8090/upload/2020/2/image-49f3c459036d402aa40d801a852da8d2.png)]

6.2.選擇主題

選擇一個你喜歡的點擊詳情。接着找到主題Github地址,點擊進入

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Pin9oYf2-1581497952366)(http://39.102.36.205:8090/upload/2020/2/image-c21466461aab42a98b6b6b8c053cad88.png)]

接着複製主題地址

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-plorKjkw-1581497952367)(http://39.102.36.205:8090/upload/2020/2/image-892ec721c4bc45f0909f554061730259.png)]

6.3.修改主題

在網站後臺中進入主題界面,界面右下角有添加主題按鈕,點擊後,選擇安裝主題

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-tUE13ZWe-1581497952369)(http://39.102.36.205:8090/upload/2020/2/image-ecab0dd8d34f420d91b45873219b9557.png)]

輸入剛纔複製的地址,點擊下載

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Xhjg5t8U-1581497952371)(http://39.102.36.205:8090/upload/2020/2/image-725d562102c04bfbbc8d4491d397c0d0.png)]

如果不能下載成功,可以手動下載下來,然後使用本地上傳。成功後點擊啓用即可。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-D85qVytk-1581497952372)(http://39.102.36.205:8090/upload/2020/2/image-2b25c4e785de4eb69e7857ea4426c537.png)]

6.4.設置主題

點擊主題的設置可以修改主題的一些配置。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-of1gI8pB-1581497952373)(http://39.102.36.205:8090/upload/2020/2/image-c527f5c587274518acf678840349d90e.png)]

主題有很多配置大家可以參照文檔多試試。

7.最後

個人博客地址:菜鳥小謝

還要再次說明,本博客大致來源於一個大佬學長的
小張技術博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章