目錄 目錄目錄購買伺服器環境要求硬體配置CPU記憶體磁碟網路軟體環境JRE(Java Runtime Environment)MySQL(可選)Web 伺服器(可選)Wget(可選)VIM(可選)瀏覽器支持名詞解釋~(符號)運行包工作目錄購買功能變數名稱伺服器安裝配置遠程連接阿裡雲網頁連接Xshell程式連接 ...
目錄
目錄購買伺服器
官方硬體需求: https://docs.halo.run/getting-started/prepare/
環境要求
這裡將講述運行 Halo 所要求的一些軟硬體的配置,我們建議您在運行或者部署之前先瀏覽一遍此頁面。
硬體配置
提示
如果您要使用伺服器進行部署 Halo,您需要註意的是,Halo 目前不支持市面上的雲虛擬主機,請使用雲伺服器或者 VPS。
CPU
無特別要求。目前我們的 Docker 鏡像 也已經支持多平臺。
記憶體
為了獲得更好的體驗,我們建議至少配置 1G 的 RAM。
磁碟
無特別要求,理論上如果不大量在伺服器上傳附件,Halo 對磁碟的容量要求並不是很高。但我們推薦最好使用 SSD 硬碟的伺服器,能更快的運行 Halo。
網路
Halo 目前必須在外網暢通的情況下使用,否則會導致頁面異常。
軟體環境
Halo 理論上可以運行在任何支持 Java 的平臺。
JRE(Java Runtime Environment)
必須在運行環境安裝好 JRE,這是運行 Halo 所要求的的最低軟體環境要求。如果您使用 Docker 運行 Halo,可忽略此要求。
信息
從 1.4.3 起,版本要求為 11 以上的版本。1.4.3 以下需要 1.8 以上的版本。
MySQL(可選)
這並不是 Halo 必須依賴的,Halo 預設使用自帶的
H2 Database
,無需單獨安裝。如果H2 Database
不能滿足你的要求,您需要在系統內安裝並運行好 MySQL。具體要求:
- 版本:5.7 +
- 字元集(Character Set):
utf8mb4
- 排序規則(Collate):
utf8mb4_bin
- 存儲引擎:
InnoDB
綜上,建議創建資料庫採用下麵的命令:
create database halodb character set utf8mb4 collate utf8mb4_bin;
Web 伺服器(可選)
如果您部署在生產環境,那麼你很可能需要進行功能變數名稱綁定,這時候我們推薦使用諸如 Nginx、Caddy 之類的 Web 伺服器進行反向代理。但需要註意的是,目前 Halo 不支持代理到子目錄(如:halo.run/blog)。
Wget(可選)
後續的文檔中,我們會使用 wget 為例,用於下載所需要的文件,所以請確保伺服器已經安裝好了這個軟體包。當然,下載文件不限制工具,如果你對其他工具熟悉,可以忽略。
VIM(可選)
後續的文檔中,我們會使用 vim 為例,用於修改一些必要的配置文件,所以同樣請確保伺服器已經安裝了這個軟體包。當前,修改文檔也不限制工具,如果你對其他編輯軟體熟悉,也可以忽略。
瀏覽器支持
- 用戶前臺:視主題所支持的情況而定,由於目前的評論模塊使用了 Vuejs 開發,所以在 Vuejs 不支持的某些瀏覽器中無法正常顯示評論區域。
- 管理後臺:支持目前常見的現代瀏覽器,具體視 Vuejs 框架的支持情況而定。
名詞解釋
這裡將列出後續文檔中一些和 Halo 相關的名詞含義。
~(符號)
代表當前系統下的 用戶目錄。
運行包
指 Halo 構建所產生的 Jar 包,尾碼為
.jar
。可能與其他網站應用有所區別的是,Halo 僅僅只有這一個文件。而且所有數據統一保存在下麵所說的工作目錄
。工作目錄
指 Halo 所依賴的工作目錄,在 Halo 運行的時候會在系統當前用戶目錄下產生一個
.halo
的文件夾,絕對路徑為~/.halo
。由於這個工作目錄是固定的,所以上面所說的運行包
不限制所存放的位置,裡面通常包含下列目錄或文件:
db
:存放 H2 Database 的物理文件,如果您使用 MySQL 資料庫,那麼不會存在這個目錄。templates/themes
:裡面包含用戶所下載的主題。static
:相當於網站的根目錄。logs
:運行日誌目錄。upload
:附件目錄。application.yaml
:配置文件。
在阿裡雲官網點擊價格計算器
地域可以購買離自己進一點的(訪問起來會快一點), 如果伺服器在大陸內, 最後進行功能變數名稱綁定的時候需要進行備案, 選用在香港的伺服器則不用.
購買功能變數名稱
建議在博客搭建完畢後再進行備案, 在下文的 nginx反向代理 中需要用到功能變數名稱, 打開阿裡雲功能變數名稱購買頁面, 輸入你想買的功能變數名稱名稱, 建議先去瞭解一下功能變數名稱類型及其價格, 有些功能變數名稱第一年便宜但續費很貴, 建議用英文功能變數名稱.
然後按步驟購買, 去ICP審核備案, 具體看阿裡雲文檔, 備案一定要去網上查一下技巧, 否則不好通過.
阿裡雲備案
公安聯網備案: 網址
伺服器安裝配置
遠程連接
購買完畢以後進入控制台: 阿裡雲控制台
在左邊選雲伺服器ECS
查看實例, 記住自己的公網IP和私網IP, 登錄名稱和登錄密碼
若是系統配置不對, 可以停止主機, 然後重新載入鏡像( 重裝系統) :
點擊重置實例密碼, 然後我們修改密碼: 必須記下用戶名root和實例密碼
配置安全組
進入到安全組列表, 點擊右側配置規則
選擇入方向, 點擊手動添加, 在新的規則中輸入如圖內容, 8090埠為halo預設埠, 8888為寶塔面板預設埠, 443為SSL埠, 80為網站預設埠.
阿裡雲網頁連接
選擇實例右邊的遠程連接
輸入管理員賬戶, 點擊確定連接:
等待一會, SSH遠程連接Linux終端:
Xshell程式連接
推薦使用Xshell或類似軟體連接, 以Xshell為例:
安裝完畢後打開Xshell.
Xmanager Power Suite 7是一款功能強大、體積小巧的遠程管理軟體,可以讓用戶Windows環境下瀏覽遠端X視窗系統的工具,方便用戶在windows平臺下連接遠程伺服器進行管理操作,支持一鍵連接到unix、linux伺服器系統進行文件的管理操作,提供強大的回話管理控制台和易於使用的X應用程式啟動器,包含了常規XDMCP的所有好處,可以共用X應用程式,大幅度提高安全性,用戶通過Xmanager Power Suite 7可以把遠程的UNIX/Linux桌面環境無縫地導入到自己的Windows PC,即使用戶的電腦是開啟防火牆和安全軟體的,用戶也能通過SSH協議安全的運行遠端的X應用程式。可以通過Xcongfig工具設置多個Xmanager設置,同時還支持多用戶Windows終端環境的運行,支持多個IP地址同時線上,支持多視窗下的Windows列印等,還有用戶可以在xmanager界面上同時啟動多個會話,也可以創建各主機的快捷圖標。通過xmanager 7附屬下的Xstart可以在用戶PC運行遠程X應用程式,登陸遠程主機時支持SSH、TELNET、RLOGIN、REXEC、RSH和LOCAL協議,並且可以在本機輕鬆執行遠程主機命令,可以大大地提高管理人員的效率。利用Xstart可以在用戶的Windows PC非常輕鬆的執行遠程主機的命令,就是這麼簡單和任性。該軟體廣泛用於各種領域的工作,包括大型工藝與半導體和伺服器管理設計的IDC(互聯網數據中心),大學和公司的伺服器管理員與想要通過互聯網連接到遠程主機的個人用戶是這個產品常用群體。
先檢查網路環境, ping一下公網IP:
連接伺服器:
文件> 打開
新建會話> 驗證伺服器用戶名
若配置後沒有生效, 可以關閉頁面後重新打開軟體進入.
開始檢查:
uname [-amnrsv][--help][--version]
參數說明:
-a或--all 顯示全部的信息。
-m或--machine 顯示電腦類型。
-n或--nodename 顯示在網路上的主機名稱。
-r或--release 顯示操作系統的發行編號。
-s或--sysname 顯示操作系統名稱。
-v 顯示操作系統的版本。
--help 顯示幫助。
--version 顯示版本信息。
查看參數:
uname -a
uname -n
查看防火牆狀態:預設關閉狀態
iptables -L -n
查看是否能夠上網:
ping www.baidu.com
按Ctrl+C可以終止
完畢.
博客安裝
進行Halo的安裝準備
根據官方文檔安裝:https://docs.halo.run/getting-started/install/linux/
這裡依照官方文檔, 進行安裝的指導.
-
對系統升級
yum -y update
直到末尾出現complete!字樣即可.
yum 是一個互動式的、基於 rpm 的包管理器,是一種聯網安裝軟體的方式。它可以安裝軟體、卸載軟體、查詢軟體、更新軟體以及系統、自動解決rpm包依賴問題。
-
CentOS進行java環境的安裝, 輸入代碼後回車. 中途會詢問是否安裝, 回覆y即可, 安裝成功後, 會顯示success等字樣
sudo yum install java-11-openjdk -y
-
檢查Java版本
java -version
如果輸出以下類似內容即代表成功
openjdk version "11.0.10" 2021-01-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)
正式安裝Halo
- 創建新的系統用戶
信息
我們不推薦直接使用系統 root 用戶來運行 Halo。如果您需要直接使用 root 用戶,請跳過這一步。
創建一個名為 halo 的用戶(名字可以隨意)
useradd -m halo
給予 sudo 許可權
usermod -aG wheel halo
為 halo 用戶創建密碼
passwd halo
登錄到 halo 賬戶
su - halo
- 創建存放 運行包 的目錄,這裡以
~/app
為例mkdir ~/app && cd ~/app
- 下載運行包
wget https://dl.halo.run/release/halo-1.5.4.jar -O halo.jar
信息
如果下載速度不理想,可以 在這裡 選擇其他下載地址。
- 創建 工作目錄
mkdir ~/.halo && cd ~/.halo
- 下載示例配置文件到 工作目錄
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
編輯配置文件,配置資料庫或者埠等,如需配置請參考 配置參考
[補充: 這一步一般不需要改動, 預設即可, 在該頁面輸入
:wq
即可退出]vim application.yaml
- 測試運行 Halo
cd ~/app && java -jar halo.jar
如看到類似以下日誌輸出,則代表啟動成功。
[補充: 成功啟動後, 輸入Ctrl+C 即可退出]
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090 run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin run.halo.app.listener.StartedListener : Halo has started successfully!
打開
http://ip:埠號
即可看到安裝引導界面。信息
如測試啟動正常,請繼續看
作為服務運行
部分,第 8 步僅僅作為測試。當你關閉 ssh 連接之後,服務會停止。你可使用 CTRL+C 停止運行測試進程。提示
如果需要配置功能變數名稱訪問,建議先配置好反向代理以及功能變數名稱解析再進行初始化。如果通過
http://ip: 埠號
的形式無法訪問,請到伺服器廠商後臺將運行的埠號添加到安全組,如果伺服器使用了 Linux 面板,請檢查此 Linux 面板是否有還有安全組配置,需要同樣將埠號添加到安全組。
作為服務運行
- 退出 halo 賬戶,登錄到 root 賬戶
如果當前就是 root 賬戶,請略過此步驟。
exit
- 下載 Halo 官方的 halo.service 模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
- 修改 halo.service
vim /etc/systemd/system/halo.service
修改配置
[補充: 進入vim編輯模式後, 點擊鍵盤上的
i
進入插入模式, 即可修改配置文件, 點擊鍵盤上的ESC
即可退出插入模式, 輸入:wq
退出配置文件. ]
- YOUR_JAR_PATH:Halo 運行包的絕對路徑,例如
/home/halo/app/halo.jar
,註意:此路徑不支持~
符號。- USER:運行 Halo 的系統用戶,如果有按照上方教程創建新的用戶來運行 Halo,修改為你創建的用戶名稱即可。反之請刪除
User=USER
。[Unit] Description=Halo Service Documentation=https://halo.run After=network-online.target Wants=network-online.target [Service] Type=simple User=halo 這裡是User=你創建的用戶名 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
提示
請確保
/usr/bin/java
是正確無誤的。建議將ExecStart
中的命令複製出來運行一下,保證命令有效。
- 重新載入 systemd
systemctl daemon-reload
- 運行服務
systemctl start halo
- 在系統啟動時啟動服務
systemctl enable halo
您可以查看服務日誌檢查啟動狀態
journalctl -n 20 -u halo
當全部完成後, 打開瀏覽器, 在地址欄輸入公網ip:埠
的方式來訪問你的網站.
Halo安裝嚮導
安裝寶塔面板
在終端中輸入下麵的命令, 返回root根目錄下.
cd ~
安裝寶塔面板, Centos, 具體可以去官網查看, https://www.bt.cn/bbs/thread-19376-1-1.html
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安裝完成後, console上會出現你的伺服器寶塔面板的訪問地址, 賬號和密碼. 必須記下來.
如果忘記了可以在SSH中輸入bt default
重新查看
打開瀏覽器, 在地址欄輸入公網ip:8888
的方式來訪問寶塔面板, 輸入剛纔記下來的寶塔賬號密碼進入.
首次進入寶塔面板會有軟體的推薦安裝, 這個直接關掉, 後面可以從軟體商城中自行安裝nginx.
點擊左側菜單欄的安全, 點開後可以看到防火牆, 在防火牆中依次放行上面在阿裡雲伺服器中已經放行過的埠:
8090埠沒有預設的放行, 安裝好寶塔面板後, 若如果沒有再次去放行則, 不能通過ip:埠的方式去訪問博客.
功能變數名稱解析
打開阿裡雲功能變數名稱控制台, 選擇對應功能變數名稱解析
然後等待半個小時以上, 等待DNS伺服器更新.
我們解析完成後, 可以在cmd中ping我們的功能變數名稱, 如果ping通則說明解析成功, 剛解析完會有一定的延遲,過一會應該能ping通, 一般等待半小時以上.
nginx反向代理
也可以使用 Caddy 進行反向代理, Caddy 是一款使用 Go 語言開發的 Web 伺服器, 其配置更為簡潔,並可以自動申請及配置 SSL 證書.
這一步需要有備案好的功能變數名稱!
在左側菜單欄中選擇軟體商店> 搜索nginx> 選擇快速安裝> 等待安裝完畢.
等待nginx安裝完畢後, 點擊左側網站> 點擊添加站點, 添加你的站點.
這時我們的網站管理中就會多出我們剛纔添加的站點, 我們選擇該站點點擊設置, 可以看到下麵得到界面.
同樣的方法再添加一個 www.你的功能變數名稱
,www開頭的為一級功能變數名稱, 即可.
效果為:
繼續在寶塔面板, 網站中, 點擊配置文件, 開始進行nginx的配置. 官方文檔:https://docs.halo.run/install/bt-panel
1.首先在根節點下添加以下代碼(根節點與Server節點併列,添加根節點即在Server外添加)
upstream halo {
server 127.0.0.1:8090;
}
這裡8090為halo預設埠,如果前面有改過埠號,則改為修改過的埠號。
- 在55行左右找到名為
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
的
子節點, 將下麵代碼插入到該子節點中
proxy_pass http://halo;
3.在63行左右找到名為location ~ .*\.(js|css)?$
的子節點
將一下代碼插入到該子節點中
proxy_pass http://halo;
4.將下麵的內容插入到第69行後面(即在Server內添加一個名為location /
的子節點,與上述兩個節點併列)
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://halo;
}
註意在78行(最下方一行,不一定是78)還有一個反大括弧。
點擊保存, 配置完成, 等待一段時間的延遲後, 可以通過功能變數名稱訪問博客了, 如果不能訪問可以嘗試通過寶塔面板重啟nginx.
註:如果我們訪問我們的博客, 出現css沒有的情況有可能是在我們的博客後臺->系統->博客設置中的博客地址沒有相應的修改成我們的功能變數名稱, 可以修改為[http://+功能變數名稱的格式]
SSL認證
為博客增加SSL認證, 能夠讓其更加安全, 在更多瀏覽器上認可, 還有圖床配置.
建議使用Lets Encrypt, 使用寶塔SSL會比較慢, 申請一種即可.
註:如果我們訪問我們的博客,出現css沒有的情況有可能是在我們的博客後臺->系統->博客設置中的博客地址沒有相應的修改成我們的功能變數名稱。可以修改為[https://+功能變數名稱的格式]
註: 申請SSL認證必須得等功能變數名稱審核通過後確保能夠通過功能變數名稱訪問我們的博客後才能申請, 否則會申請失敗.
參考網址
Halo
- 官網:https://halo.run
- 文檔:https://docs.halo.run
- 社區:https://bbs.halo.run
- 主題倉庫:https://halo.run/themes.html
- 開源地址:https://github.com/halo-dev/halo
圖床搭建
創建圖床
博客搭建後, 可以用站長工具ping一下, https://ping.chinaz.com/
圖片在阿裡雲實例中, 載入緩慢, 應該另外搭建圖床, 推薦用七牛雲, 有免費空間和流量, 具體看七牛雲官網.
註冊七牛雲賬號後開始!
進入七牛雲控制台
根據官方文檔完成創建.
若博客開啟了https, 圖床也要開啟https,否則部分瀏覽器圖片無法打開.
在空間管理> 空間設置中
管理圖床PicGo
下載PicGO: 鏈接
具體可以去網上查看教程. 例如 使用PicGo配置七牛雲圖床(圖文步驟詳細)
若覺得上傳前重命名彈窗太麻煩了, 可以關閉, 沒什麼影響.
到了這裡, 博客系統就全部搭建完畢了, 開始你的博客生涯吧!
其它
網上參考文章節選:
阿裡雲配置二級功能變數名稱
大概流程是通過阿裡雲的一級功能變數名稱,創建一個二級功能變數名稱解析;在解析伺服器上設置綁定解析好的二級功能變數名稱。
工具/原料
- 阿裡雲後臺
- 已經申請阿裡雲功能變數名稱(已備案)
- 解析伺服器
方法/步驟
登錄->控制台->功能變數名稱,打開功能變數名稱列表
1、點擊解析後進入解析設置,在這裡可以定義二級功能變數名稱。
2、如果二級功能變數名稱指向是一個解析伺服器,請在記錄類型選擇CNAME記錄。如果是一個網址,則選擇隱性URL或顯性URL ,區別在於轉過去之後地址欄內的地址變或是不變。如果不想顯示實際地址,建議用隱性。
在這裡,由於我指向一個解析伺服器,所以使用CNAME記錄
3、記錄值,是指要轉向的地址,也就是實際地址。
1、如果你是轉到一個網址,那到此就結束了。幾分鐘之後二級功能變數名稱就起效了。
2、如果你是轉到一個解析伺服器,還需要對方解析伺服器上建上這個二級功能變數名稱的鏈接。
SSL證書
添加二級功能變數名稱及註冊SSL使用https訪問
背景:開發了款小程式要部署,發現小程式只支持https的請求。。。
So,原來的功能變數名稱已經給Web端綁定且在正式使用中,
百度後發現小程式也支持二級功能變數名稱,於是便想的在原來功能變數名稱下開一個二級功能變數名稱給小程式使用,這種場景也是比較合理的,
一般web使用 www.abc.com 移動端/小程式等則使用m.abc.com等等方式
功能變數名稱使用的阿裡雲註冊的
進入阿裡雲控制台,找到功能變數名稱服務這塊,找到註冊的功能變數名稱
點擊解析設置,參考說明,這樣配置一個 xxx.abc.com的二級功能變數名稱
解析設置,配置好了二級功能變數名稱的地址及 記錄值(雲伺服器的IP地址)這樣就實現了 功能變數名稱和IP的綁定
其他的:功能變數名稱註冊,備案等都有很詳盡的參考文檔,這裡不再贅述
接下來我們還需要給功能變數名稱註冊一個SSL這樣才能開啟https的訪問
在阿裡雲實例中找到 SSL證書 這一項,點擊 購買證書
開始不知道可以有免費證書,一看價格還挺貴的,練手項目等花幾千塊錢肯定划不來。。。
百度看到有說有免費的證書可以使用,如下圖,需要選擇免費型 DV SSL
當然如果是正式項目等建議還是買付費版的