Ghost是一個基於Node.js開發的免費開源部落格平台,用於簡化部落格的寫作、發布等流程。本文介紹如何在Ubuntu 22.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:22.x
更詳細的版本要求,請參見Prerequisites。
準備工作
使用本文的操作步驟,ECS執行個體必須滿足以下條件:
(可選)步驟一:建立新使用者
如果您建立ECS執行個體已設定了ecs-user使用者,請忽略該步驟,直接使用ecs-user使用者執行步驟二:安裝Nginx。
由於Ghost官方不推薦使用root使用者直接操作,因此您需要重新建立新的使用者,並為其配置許可權。
遠程登入ECS執行個體。
具體操作,請參見使用Workbench登入Linux執行個體。
執行以下命令,建立新使用者。
本步驟以建立
test使用者為例。adduser test在
New password:和Retype new password:提示資訊中,請按照提示輸入並確認使用者密碼,密碼預設不顯示,輸入完成後按Enter。在
Enter the new value, or press ENTER for the default提示資訊中,按Enter保持預設即可,您也可以根據實際情況填寫使用者相關資訊。在
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執行以下命令,將新建立的使用者添加到組。
usermod -a -G sudo test執行以下命令,切換到
test使用者。su - test
步驟二:安裝Nginx
請確保您的ECS執行個體已指派公網IP地址或綁定Elastic IP Address(EIP)。具體操作,請參見綁定EIP。
部署Ghost部落格,需要安裝Nginx作為HTTP伺服器。
依次執行以下命令,更新Linux作業系統和軟體包。
sudo apt-get update sudo apt-get upgrade -y安裝Nginx。
sudo apt-get install -y nginx您可以運行
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)來管理其資料。
執行以下命令,安裝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))執行以下命令,串連MySQL。
sudo mysql執行以下命令,建立Ghost使用的資料庫。
本文以ghost_data為例。
CREATE DATABASE ghost_data;執行以下命令,設定
root使用者密碼。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '輸入root帳號密碼';執行以下命令,重新載入MySQL的授權表,確保資料庫許可權的更改生效。
FLUSH PRIVILEGES;執行以下命令,退出MySQL。
exit
步驟四:安裝Node.js
Ghost當前支援的Node.js版本為22.x LTS,其他版本暫不支援。本文以安裝22.x版本的Node.js為例。
下載並匯入Nodesource GPG密鑰。
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg建立deb倉庫。
NODE_MAJOR=22 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list更新並安裝Node.js。
sudo apt-get update sudo apt-get install -y nodejs查看Node.js版本。
node -v回顯資訊類似如下所示。
test@iZbp1g2d4dpki2mf63b****:~$ node -v v22.13.1
步驟五:安裝Ghost
(可選)更換npm阿里雲鏡像源以加速Ghost安裝過程。
重要更換npm鏡像源可能會影響到未來所有npm包的安裝過程。建議您安裝Ghost完成後,執行
npm config set registry https://registry.npmjs.org/恢複npm的預設配置。npm config set registry https://registry.npmmirror.com安裝Ghost-CLI命令列工具,以便快速配置Ghost。
sudo npm install ghost-cli@latest -g當出現如下圖所示時,表示已安裝Ghost-CLI命令列工具。

依次執行以下命令,建立Ghost安裝目錄並授權。
sudo mkdir -p /var/www/ghost sudo chown test:test /var/www/ghost sudo chmod 775 /var/www/ghost依次執行以下命令,安裝Ghost。
cd /var/www/ghost ghost installGhost安裝的過程中,需要配置以下相關參數。未提及的參數,請結合實際情況及頁面提示完成。
參數
說明
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。
完成設定後,介面下方會輸出Ghost的管理員訪問地址。例如:http://47.98.XX.XX/ghost。
測試訪問Ghost部落格。
訪問Ghost前台首頁或後台管理頁面的操作說明如下:
前台首頁
在本地Windows主機或其他任意具有公網訪問能力的Windows主機中,開啟瀏覽器並輸入http://ECS執行個體公網IP地址,訪問Ghost前台首頁。
說明如果訪問出現502,請檢查是否是執行個體內的防火牆問題,您可以關閉防火牆。
後台管理頁面
在本地Windows主機或其他任意具有公網訪問能力的Windows主機中,開啟瀏覽器並輸入
http://ECS執行個體公網IP地址/ghost,訪問Ghost後台管理頁面。首次訪問Ghost後台管理頁面時,您需要根據頁面提示完成Ghost部落格的相關配置,請您根據實際頁面的提示資訊完成配置。

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