全部產品
Search
文件中心

Elastic Compute Service:搭建Ghost部落格

更新時間:Nov 20, 2024

Ghost是一個基於Node.js開發的免費開源部落格平台,用於簡化部落格的寫作、發布等流程。本文介紹如何在Ubuntu 22.04/20.04作業系統的ECS執行個體上部署Ghost部落格。

背景資訊

搭建Ghost部落格分為開發模式(development)和生產模式(production),建議您在第一次搭建Ghost部落格時使用開發模式,方便對Ghost部落格調試。本文操作樣本適用於初次使用阿里雲進行建站的個人使用者。關於Ghost部落格的更多資訊,請參見Getting started with Ghost

隨著業務的擴充,您可以使用阿里雲的產品平台,平滑地橫向和縱向擴充服務容量,例如:

  • 擴充單個ECS執行個體的CPU和記憶體規格,增強伺服器的處理能力。

  • 增加多台ECS執行個體,並利用阿里雲負載平衡,在多個執行個體中進行負載的均衡分配。

  • 利用阿里雲Auto Scaling,根據業務量自動增加或減少ECS執行個體的數量。

  • 利用阿里雲Object Storage Service,儲存靜態網頁和海量圖片、視頻等。

Ghost部落格對Nginx、MySQL、Node.js有版本要求,具體說明如下:

  • Nginx:1.9.5及以上版本

  • MySQL:8.0.x

  • Node.js:20.x(推薦)和18.x

更詳細的版本要求,請參見Prerequisites

準備工作

使用本文的操作步驟,ECS執行個體必須滿足以下條件:

  • 執行個體已指派公網IP地址或綁定Elastic IP Address(EIP)。具體操作,請參見綁定EIP

  • 作業系統:Ubuntu 20.04、Ubuntu 22.04。

  • 執行個體安全性群組的入方向規則已允許存取22、80、443與2368連接埠。具體操作,請參見添加安全性群組規則

(可選)步驟一:建立新使用者

說明

如果您建立ECS執行個體已設定了ecs-user使用者,請忽略該步驟,直接使用ecs-user使用者執行步驟二:安裝Nginx

由於Ghost官方不推薦使用root使用者直接操作,因此您需要重新建立新的使用者,並為其配置許可權。

  1. 遠程登入ECS執行個體。

  2. 執行以下命令,建立新使用者。

    本步驟以建立test使用者為例。

    adduser test
    1. New password:Retype new password:提示資訊中,請按照提示輸入並確認使用者密碼,密碼預設不顯示,輸入完成後按Enter

    2. Enter the new value, or press ENTER for the default提示資訊中,按Enter保持預設即可,您也可以根據實際情況填寫使用者相關資訊。

    3. Is the information correct? [Y/n]提示資訊中,輸入Y確認資訊,並按Enter鍵,完成設定。

    具體配置類似如下所示。

    root@iZbp1g2d4dpki2mf63b****:~# adduser test
    Adding user `test' ...
    Adding new group `test' (1000) ...
    Adding new user `test' (1000) with group `test' ...
    Creating home directory `/home/test' ...
    Copying files from `/etc/skel' ...
    New password:
    Retype new password:
    passwd: password updated successfully
    Changing the user information for test
    Enter the new value, or press ENTER for the default
            Full Name []:
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [Y/n] Y
  3. 執行以下命令,將新建立的使用者添加到組。

    usermod -a -G sudo test
  4. 執行以下命令,切換到test使用者。

    su - test

步驟二:安裝Nginx

重要

請確保您的ECS執行個體已指派公網IP地址或綁定Elastic IP Address(EIP)。具體操作,請參見綁定EIP

部署Ghost部落格,需要安裝Nginx作為HTTP伺服器。

  1. 依次執行以下命令,更新Linux作業系統和軟體包。

    sudo apt-get update
    sudo apt-get upgrade -y
  2. 安裝Nginx。

    sudo apt-get install -y nginx
  3. 您可以運行nginx -v命令,查看Nginx的版本資訊。

    nginx -v

    回顯資訊類似如下所示。

    nginx version: nginx/1.18.0 (Ubuntu)
    說明

    本樣本操作中安裝的Nginx版本為1.18.0。軟體安裝包不定期更新,請您以實際安裝的Nginx版本資訊為準。

步驟三:安裝MySQL

MySQL是一種開來源資料庫管理系統,通常作為流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆棧的一部分安裝。它使用關聯式資料庫和SQL結構化查詢語言 (SQL)來管理其資料。

  1. 執行以下命令,安裝MySQL。

    sudo apt-get install -y mysql-server

    執行mysql -V命令,查看MySQL版本號碼。回顯資訊類似如下所示,表示MySQL安裝成功。

    test@iZbp1g2d4dpki2mf63b****:~$ mysql -V
    mysql  Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  2. 執行以下命令,串連MySQL。

    sudo mysql
  3. 執行以下命令,建立Ghost使用的資料庫。

    本文以ghost_data為例。

    CREATE DATABASE ghost_data;
  4. 執行以下命令,設定root使用者密碼。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '輸入root帳號密碼';
  5. 執行以下命令,重新載入MySQL的授權表,確保資料庫許可權的更改生效。

    FLUSH PRIVILEGES;
  6. 執行以下命令,退出MySQL。

    exit

步驟四:安裝Node.js

重要

Ghost當前支援的Node.js版本為20.x(推薦)和18.x,其他版本暫不支援。本文以安裝20.x版本的Node.js為例。

  1. 執行以下命令,下載Node.js安裝源。

    curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash
  2. 執行以下命令,安裝Node.js。

    sudo apt-get install -y nodejs
  3. 執行以下命令,查看Node.js版本。

    node -v

    回顯資訊類似如下所示。

    test@iZbp1g2d4dpki2mf63b****:~$ node -v
    v20.18.0

步驟五:安裝Ghost

  1. (可選)更換npm阿里雲鏡像源以加速Ghost安裝過程。

    重要

    更換npm鏡像源可能會影響到未來所有npm包的安裝過程。建議您安裝Ghost完成後,執行npm config set registry https://registry.npmjs.org/ 恢複npm的預設配置。

    npm config set registry https://registry.npmmirror.com
  2. 安裝Ghost-CLI命令列工具,以便快速配置Ghost。

    sudo npm install ghost-cli@latest -g

    當出現如下圖所示時,表示已安裝Ghost-CLI命令列工具。

    image

  3. 依次執行以下命令,建立Ghost安裝目錄並授權。

    sudo mkdir -p /var/www/ghost
    sudo chown test:test /var/www/ghost
    sudo chmod 775 /var/www/ghost
  4. 依次執行以下命令,安裝Ghost。

    cd /var/www/ghost
    ghost install

    Ghost安裝的過程中,需要配置以下相關參數。未提及的參數,請結合實際情況及頁面提示完成。

    參數

    說明

    Enter your blog URL

    請輸入已解析的網域名稱,例如:http://example.com。本樣本中使用公網IP作為測試,輸入http://47.98.XX.XX

    Enter your MySQL hostname

    請輸入資料庫連接地址。本樣本中MySQL資料庫與Ghost部署在同一台執行個體中,直接按Enter保持預設即可。

    Enter your MySQL username

    請輸入資料庫使用者名稱,輸入root後按Enter

    Enter your MySQL password

    請輸入資料庫密碼,輸入資料庫密碼後按Enter

    說明

    資料庫密碼為步驟三中設定的密碼。

    Enter your database name

    輸入Ghost使用的資料庫名稱。輸入ghost_data後按Enter

    說明

    資料庫名稱為步驟三中建立的資料庫,本樣本為ghost_data

    saasa

    完成設定後,介面下方會輸出Ghost的管理員訪問地址。例如:http://47.98.XX.XX/ghost。

  5. 測試訪問Ghost部落格。

    訪問Ghost前台首頁或後台管理頁面的操作說明如下:

    • 前台首頁

      在本地Windows主機或其他任意具有公網訪問能力的Windows主機中,開啟瀏覽器並輸入http://ECS執行個體公網IP地址,訪問Ghost前台首頁。adada

      說明

      如果訪問出現502,請檢查是否是執行個體內的防火牆問題,您可以關閉防火牆。

    • 後台管理頁面

      在本地Windows主機或其他任意具有公網訪問能力的Windows主機中,開啟瀏覽器並輸入http://ECS執行個體公網IP地址/ghost,訪問Ghost後台管理頁面。

      首次訪問Ghost後台管理頁面時,您需要根據頁面提示完成Ghost部落格的相關配置,請您根據實際頁面的提示資訊完成配置。adad23

網域名稱相關操作指引

如果您有建站需求,但還沒有屬於自己的網域名稱,可以先購買網域名稱。購買網域名稱後,如果您的網站部署在中國內地節點伺服器上,則必須先完成網域名稱備案,再把網域名稱解析至部署網站的ECS執行個體上。相關操作指引如下:

  • 購買網域名稱

    您可以給自己的網站設定一個單獨的網域名稱。您的網站來訪使用者可以使用易記的網域名稱訪問您的網站,而不需要使用複雜的IP地址。

    建議登入阿里雲購買網域名稱。更多資訊,請參見通用網域名稱註冊基本流程如何註冊阿里雲網域名稱

  • 網域名稱備案

    對於網域名稱指向中國內地節點伺服器上的網站,必須進行網站備案。在網域名稱獲得備案號之前,網站無法開通使用。

  • 網域名稱解析

    您需要在阿里雲的Alibaba Cloud DNS中進行網域名稱解析之後,網站的來訪使用者才能通過網域名稱訪問您的網站。具體操作,請參見新手引導