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執行個體必須滿足以下條件:
(可選)步驟一:建立新使用者
如果您建立ECS執行個體已設定了ecs-user使用者,請忽略該步驟,直接使用ecs-user使用者執行步驟二:安裝Nginx。
由於Ghost官方不推薦使用root使用者直接操作,因此您需要重新建立新的使用者,並為其配置許可權。
遠程登入ECS執行個體。
具體操作,請參見以SSH的方式登入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版本為20.x(推薦)和18.x,其他版本暫不支援。本文以安裝20.x版本的Node.js為例。
執行以下命令,下載Node.js安裝源。
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash
執行以下命令,安裝Node.js。
sudo apt-get install -y nodejs
執行以下命令,查看Node.js版本。
node -v
回顯資訊類似如下所示。
test@iZbp1g2d4dpki2mf63b****:~$ node -v v20.18.0
步驟五:安裝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 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
。完成設定後,介面下方會輸出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執行個體上。相關操作指引如下:
購買網域名稱
您可以給自己的網站設定一個單獨的網域名稱。您的網站來訪使用者可以使用易記的網域名稱訪問您的網站,而不需要使用複雜的IP地址。
建議登入阿里雲購買網域名稱。更多資訊,請參見通用網域名稱註冊基本流程如何註冊阿里雲網域名稱。
網域名稱備案
對於網域名稱指向中國內地節點伺服器上的網站,必須進行網站備案。在網域名稱獲得備案號之前,網站無法開通使用。
網域名稱解析
您需要在阿里雲的Alibaba Cloud DNS中進行網域名稱解析之後,網站的來訪使用者才能通過網域名稱訪問您的網站。具體操作,請參見新手引導。