在講解以前,我先說明一下相關的東西。java
Halo 是一款現代化的我的獨立博客系統,給習慣寫博客的同窗多一個選擇。
Halo [ˈheɪloʊ],意爲光環。固然,你也能夠當成拼音讀(哈嘍)。
輕快,簡潔,功能強大,使用 Java 開發的博客系統。mysql
本教程以Centos7爲例,配置並運行 Halo,其餘 Linux 發行版大同小異。linux
2.1.寫在前面
具有必定的 Linux 基礎。
如需域名綁定,請先保證已經正確解析 IP,以及確認服務器是否須要備案。
如需使用 IP 訪問,請先確保 Halo 的運行端口已經打開,除非你使用 80 端口運行 Halo。
如 3 所述,若是你使用了相似 寶塔面板 之類的 Linux 管理面板,可能還須要在面板裏設置端口。
不要想固然,請嚴格按照文檔的流程操做。git
接下來我們講一講有關服務器的,這裏我購買的是阿里巴巴的服務器,由於是學生,因此如今有些優惠,下面就是,這裏我推薦購買centos.
github
購買以後,就會有這樣的一個界面
web
點擊進入,經過Xshell遠程鏈接,進入控制檯
spring
下面開始最重要的sql
更新軟件包
請確保服務器的軟件包已是最新的。shell
sudo yum update -y
安裝 Java 運行環境
若已經存在 Java 運行環境的可略過這一步。數據庫
java -version
固然,這只是其中一種比較簡單的安裝方式,你也能夠用其餘方式,並非強制要求使用這種方式安裝。
5.1.下載配置文件
curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml
修改配置文件
完成上一步操做,咱們就能夠本身配置 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
如看到如下日誌輸出,則表明啓動成功.
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
參數:
YOUR_JAR_PATH:Halo 安裝包的絕對路徑,例如 /www/wwwroot/halo-latest.jar。
提示 若是你不是按照上面的方法安裝的 JDK,請確保/usr/bin/java是正確無誤的。 systemd 中的全部路徑均要寫爲絕對路徑,另外,~ 在 systemd 中也是沒法被識別的,因此你不能寫成相似 ~/halo-latest.jar 這種路徑。 如何檢驗是否修改正確:把 ExecStart中的命令拿出來執行一遍。
# 修改 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
以上內容同項目文檔,原文檔地址:在 Linux 服務器部署 Halo
此外,還借鑑了一位學長的博客小張技術博客
5.5.進入Halo
輸入如下網址進入:
http://ip地址:8090/ #這裏的端口使用的是默認的
填好信息後點擊安裝便可
安裝成功後登陸
5.6.安裝成功
網站主頁的默認主題是這種,能夠修改。
主題倉庫地址:地址
6.1.主題倉庫
6.2.選擇主題
選擇一個你喜歡的點擊詳情。接着找到主題Github地址,點擊進入
接着複製主題地址
6.3.修改主題
在網站後臺中進入主題界面,界面右下角有添加主題按鈕,點擊後,選擇安裝主題
輸入剛纔複製的地址,點擊下載
若是不能下載成功,能夠手動下載下來,而後使用本地上傳。成功後點擊啓用便可。
6.4.設置主題
點擊主題的設置能夠修改主題的一些配置。
主題有不少配置你們能夠參照文檔多試試。
我的博客地址:菜鳥小謝
還要再次說明,本博客大體來源於一個大佬學長的
小張技術博客