天天看點

從 0 到 1 搭建屬于自己的 Halo 部落格

前言

說在前面

之前一直有在各大平台釋出部落格内容,然後個人部落格一直使用的是 Hexo + Github Pages 的方式,但随着内容增多,Github Pages 通路的也不穩定,是以想着自己搞個伺服器和域名搭個部落格,最終標明 Halo 這個部落格架構,搭建屬于自己的部落格。

此内容從零到一手把手記錄如何搭建,記錄自己的搭建過程,也給後面的朋友們提供一個指南,少走些冤枉路,盡快上手。

環境配置

自己花了 210 左右在 UCloud 買了三年的伺服器,然後在騰訊花了将近 200 買了個域名,伺服器版本是 Ubuntu 18.04 64 位,理論上講下面的配置适合于 Ubuntu 系所有版本,個别有出入的地方還請諒解。是以在正式開始之前,你需要滿足以下幾個條件:

  1. 一台 Ubuntu 系統的伺服器(Centos 系統的參考 官網教程 即可);
  2. 一個域名;

Java 環境配置

安裝

  1. 首先去 官網 下載下傳 JDK,選擇自己想要的版本即可,一般推薦 JDK 1.8+ 的版本;
從 0 到 1 搭建屬于自己的 Halo 部落格
  1. 解壓下載下傳後的檔案;
tar -zxvf jdk-11.0.9_linux-x64_bin.tar.gz           

複制

  1. 配置環境變量,切換到 root 使用者,然後編輯

    /etc/profile

    檔案,添加如下内容(注意路徑切換為你自己放置解壓縮包後的位置);
export JAVA_HOME=/environment/jdk/jdk-11.0.9
export PATH=$JAVA_HOME/bin:$PATH           

複制

驗證

安裝好之後就是驗證是否成功,一般我們用如下指令進行檢測;

# 檢視 jdk 版本
java -version

# 編譯指令
javac

# 運作指令
java           

複制

安裝 Halo

下載下傳 Halo 運作包

要下載下傳 Halo 運作包,可以通過兩種方式,更推薦第二種,下載下傳起來更快:

  1. Github releases:https://github.com/halo-dev/halo/releases
  2. Nova 提供的下載下傳站:https://dl.halo.run

利用如下指令進行下載下傳,以 1.4.2 版本為例,如果要下載下傳其他版本,換版本号即可!

wget https://dl.halo.run/release/halo-1.4.2.jar           

複制

從 0 到 1 搭建屬于自己的 Halo 部落格

配置

  1. 下載下傳配置檔案(下載下傳後的檔案存放在

    ~/.halo/application.yaml

    );
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml           

複制

  1. 修改配置,參考 官方文檔 修改即可;
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           

複制

運作 Halo

配置好 Java 環境,同時下載下傳好 Halo 運作包之後,我們就可以使用如下指令運作了;

java -jar halo-latest.jar           

複制

然後在本地浏覽器中通路如下位址即可;

http://ip:8090

進階配置

開機自啟

  1. 下載下傳 Halo 官方

    service

    模闆,然後對其進行修改(此時需要管理者權限);
sudo curl -o /etc/systemd/system/halo.service --create-dirs https://dl.halo.run/config/halo.service           

複制

  1. 修改配置檔案

具體可以參考 官方文檔;

需要注意的幾點:

  • 填寫你的 JDK 絕對路徑;
  • 填寫你的 Halo 運作包所在絕對路徑;
  • 填寫運作 Halo 服務的使用者名;
  1. 測試
# 修改 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           

複制

Halo 更新

Halo 是一個活躍的社群,目前一直在開發疊代中,後續如果釋出了新的版本,而我們又想要更新,這時候就可以按照如下步驟來進行操作了;

  1. 首先,我們需要對我們原有資料進行備份,防止丢失
cp -r ~/.halo ~/.halo.bak           

複制

  1. 接着備份久的 Halo 安裝包,防止新的安裝包出現問題後無法復原;
mv halo-latest.jar halo-latest.jar.bak           

複制

  1. 做好備份工作之後,就是下載下傳最新的 Halo 安裝包了,其中

    {{verison}}

    對應最新版本号;
wget https://dl.halo.run/release/halo-{{version}}.jar -O halo-latest.jar           

複制

  1. 測試一下最新版的 Halo 能否運作成功;
java -jar halo-latest.jar           

複制

  1. 測試步驟如果成功了,那我們直接重新開機 Halo 服務就好了;
sudo service halo restart           

複制

域名通路

通過上面的配置之後,我們隻能通過

ip:port

的方式進行通路,如果我們想讓别人來通路,那麼有一個域名就十分有必要了。在正式進行配置域名之前,需要確定如下幾件準備工作:

  1. Halo 已經能夠正确運作,且運作端口不是

    80

    端口;
  2. 確定域名解析到伺服器 IP,而且確定伺服器已經備案(國内伺服器都需要,國外無需);
  3. 打開伺服器的

    80

    443

    端口;

配置域名解析伺服器 IP

因為我的域名是在騰訊買的,是以這裡以騰訊為例;

  1. 首先打開 域名解析清單,并點選右側解析進入解析界面;
從 0 到 1 搭建屬于自己的 Halo 部落格
  1. 接着添加記錄;
從 0 到 1 搭建屬于自己的 Halo 部落格

添加如下兩條記錄,其他字段保持預設即可;

主機記錄 記錄類型 記錄值
@ A 你的伺服器 IP
www A 你的伺服器 IP

打開伺服器對應端口

  1. 登入你的伺服器,然後打開主機管理界面;
  2. 接着編輯防火牆,将需要打開的端口打開即可,一般打開如下的協定端口就可以了;
  • ICMP
  • 3389
  • 80
  • 443
  • 21
  • 22
  • 8090
從 0 到 1 搭建屬于自己的 Halo 部落格

利用 Nginx 進行反向代理

  1. 安裝 Nginx
sudo apt-get install nginx           

複制

  1. 設定開機自啟動 Nginx
systemctl enable nginx           

複制

  1. 啟動 Nginx
sudo service nginx start           

複制

  1. 配置 Nginx

首先下載下傳 Halo 官方的 Nginx 配置模闆;

curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf           

複制

然後對其進行修改;

sudo vim /etc/nginx/conf.d/halo.conf           

複制

隻需要将其中的

example.com

修改成自己的域名即可,比如我的域名是

cunyu1943.site

server {
    listen 80;

    server_name example.com www.example.com;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://127.0.0.1:8090/;
    }
}           

複制

  1. 自動配置 SSL 證書

首先安裝 certbot nginx 插件;

sudo apt-get install python-certbot-nginx           

複制

接着執行配置,過程中會詢問為哪個域名添加證書,以及是否重定向,如實選擇即可;

sudo certbot --nginx            

複制

從 0 到 1 搭建屬于自己的 Halo 部落格
從 0 到 1 搭建屬于自己的 Halo 部落格

最後,設定自動續約即可;

sudo certbot renew --dry-run           

複制

從 0 到 1 搭建屬于自己的 Halo 部落格
  1. 完成上述步驟之後,大功告成了,我們就可以通過自己的域名來通路自己的部落格了,比如我的部落格就是:
https://cunyu1943.site

總結

好了,經過上面的一系列設定,我們的部落格就搭建完成了,是不是好簡單的說,那就别猶豫,趕緊動手搞起來吧!

最後再貼以下自己的部落格位址,歡迎大家來留言,交換友鍊呀!

https://cunyu1943.site