Ghost 博客平臺安裝和配置

Ghost 是一個博客發佈平臺,和 Hexo 等類似。本文簡要介紹如何安裝和配置 Ghost,環境爲 Ubuntu 16.04 系統上,假設你已經擁有一個服務器和一個域名。

安裝

安裝過程主要參考官方教程,下面我總結下:

  1. 在系統上創建一個新用戶。一般安裝 Ghost 會使用一個新用戶,當然這也不是必須的。創建用戶可以使用 useraddadduser 命令,然後使用 usermod 命令將其加到 sudo 組裏,最後使用新用戶登錄系統。命令詳細使用方法可參考其文檔,假設我們創建的用戶叫 price

  2. 更新系統,安裝 NGINX、MySQL、Node.js 和 Ghost-CLI

    sudo apt update
    
    # 安裝 NGINX、MySQL
    # 安裝 MySQL 時會彈出窗口讓輸入 MySQL 用戶名和密碼
    # 用戶名默認 root,密碼自己設置,安裝 Ghost 時會用到
    # 如果你的系統是 18.04,那麼需要額外的一些步驟
    # 參考 https://ghost.org/docs/install/ubuntu/#mysql-on-ubuntu-1804
    sudo apt install nginx mysql-server
    
    # 配置防火牆
    sudo ufw allow 'Nginx Full'
    
    # 安裝 Node.js
    curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
    sudo apt install nodejs
    
    # 安裝 Ghost-CLI
    sudo npm install ghost-cli@latest -g
    
  3. 創建安裝目錄,配置目錄權限,安裝 Ghost

    # 創建並配置目錄
    sudo mkdir -p /var/www/ghost
    sudo chown price:price /var/www/ghost
    sudo chmod 775 /var/www/ghost
    cd /var/www/ghost
    
    # 安裝 Ghost
    ghost install
    
  4. ghost install 命令執行之後,首先會下載安裝 ghost,然後會讓你一項一項的配置 ghost,主要有一下幾項:

    • 博客地址:例如 https://example.com,帶上 http 或者 https,如果使用 https, Ghost 會自動幫你設置。使用 IP 地址會報錯,但是這個具體怎麼報錯不清楚,還沒遇到過,還是推薦先自己買個域名
    • MySQL hostname:如果 Ghost 和 MySQL 在一個服務器上的話,這一項默認 localhost 即可
    • MySQL 用戶名密碼:前面安裝 MySQL 的時候你設置的用戶名密碼
    • Ghost 數據庫名:默認即可
    • 是否設置一個 Ghost MySQL 用戶:默認是,前提是你前面提供的 MySQL 用戶是 root 用戶
    • 是否設置 NGINX:默認是
    • 是否設置 SSL:如果你前面提供的博客地址是 https,那麼就選是,Ghost 會自動幫你用 Let’s Encrypt 設置 SSL。你也可以之後手動執行 ghost setup ssl 來設置
    • 你的郵箱:輸入你的郵箱地址,萬一你的證書有問題(比如到期了),Let’s Encrypt 就會通知你,這個是和上面的 SSL 相關的
    • 是否設置 systemd:默認是
    • 是否啓動 Ghost:默認是

至此,安裝工作全部完成,順利的話就可以輸入你的博客地址進入博客了,也可以使用 ghost ls 來查看你的博客是否在運行。

配置

Ghost 安裝好啓動後,就可以輸入你的博客地址進入博客了,在你的博客地址後加上 /ghost 進入博客後臺頁面。第一次進入需要先創建一個新作者(用戶),然後就可以進行編輯發表文章了。
Ghost 後臺
裏面有很多項可以配置,下面我說下如何實現一些常用的功能。

代碼高亮

代碼高亮可以使用 Prism JS 庫和 Ghost 的 Code injection 來實現,後者中的代碼會加入到每個頁面中。

具體做法是將 Prism 的 js(實現代碼高亮) 和 css(主題) 地址分別插入到 Code injection 中的 foorter 和 header 中。地址可以使用 Cloudflare 提供的 CDN 地址

對於 js 來說,需要至少兩個:一個核心 js 和 N 個特定語言相關的 js。如果你只需要 Python 語法高亮,那麼只用添加 Python 的 js 即可。首先將核心 js 放在最上面,然後依次放入你需要的語言的 js,例如我想要實現 bash 和 Python 的語法高亮,那麼在 footer 中內容如下:

<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/prism.min.js" integrity="sha256-NFZVyNmS1YlmiklazBA+TALYJlJtZj/y/i/oADk6CVE=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-bash.min.js" integrity="sha256-0W9ddRPtgrjvZVUxGhU/ShLxFi3WGNV2T7A7bBTuDWo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-python.min.js" integrity="sha256-zXSwQE9cCZ8HHjjOoy6sDGyl5/3i2VFAxU8XxJWfhC0=" crossorigin="anonymous"></script>

對於 css 來說,指定了背景主題。Prism 提供 8 種主題,爲了能夠直觀看到每個主題的樣子,我彙總起來做了一個圖如下,你可以選擇你想要的放入 header 即可:
主題預覽
例如:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/themes/prism-tomorrow.min.css" integrity="sha256-xevuwyBEb2ZYh4nDhj0g3Z/rDBnM569hg9Vq6gEw/Sg=" crossorigin="anonymous" />
import numpy as np
import pandas as pd

# numpy 隨機數
a = np.random.rand(5, 4)
df = pd.DataFrame(a, columns=list('ABCD'))

數學公式

數學公式一般使用 MathJax 來渲染,同樣將如下代碼放入 Code injection 即可:

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async></script>

這樣會自動時刻保持最新版本。

E=mc2E = mc^2

加密博客站點

實際上是爲博客設置一個密碼,只能輸入密碼訪問,並且會取消一切 SEO 優化。在 SETTINGS -> General -> ADVANCED SETTINGS 處啓用 Make this site private 即可。

郵箱配置

郵箱配置較長,放在了一篇單獨博文中,參見使用 Mailgun 配置 Ghost 郵箱一文。

Reference

END

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