Extract
丟掉Hexo,捨棄Wordpress,最終我選擇了Ghost。
前言
前段時間,先是捨棄了Hexo轉戰Wordpress,主要原因是Hexo多終端編寫Blog比較麻煩,需要經常同步本地文件,另外Hexo沒有後臺,很多時候不是那麼方便,但是Hexo的確是我用過最有利於“專注寫作”的框架,但是沒有辦法,用戶體驗讓我不得不捨棄掉他。
後來我又使用了Wordpress,優點十分明顯:有後臺、有在線編輯器、一鍵換主題、可定製主題、大量插件等等,這些是他的優點,但Wordpress卻忽略了最重要的一個環節:編輯器。Wordpress:5.0
以後內置的Gutenberg編輯器對於Markdown用戶來說是真的難用。
之後我在網上四處衝浪,觀察大家都在使用哪些框架建站,後來我發現了這個基於Node.js開發的Blog框架—Ghost。
環境準備
官方給出的文檔建議使用如下環境:
- Ubuntu 16.04 or Ubuntu 18.04
- NGINX (minimum of 1.9.5 for SSL)
- A supported version of Node.js
- MySQL 5.5, 5.6, or 5.7 (not >= 8.0)
- Systemd
- A server with at least 1GB memory
- A registered domain name
總的來說就是就是需要Nginx、MySQL、Node.js這三個東西,另外你需要一臺至少1GB內存的服務器以及一個註冊的域名。
創建用戶
因爲Ghost不允許使用root賬戶安裝,所以首先需要創建一個普通賬戶。
#user使用自己的賬戶名稱
adduser <user>
這裏注意也不要使用ghost
作爲用戶名,這會導致與Ghost-CLI衝突。
然後我們需要將這個賬戶添加到superuser用戶組,這樣我們就可以使用sudo
命令了。
#使用root用戶執行以下命令
usermod -aG sudo <user>
#切換到新建的用戶
su - <user>
安裝Nginx
首先確保軟件包列表是最新的。
sudo apt-get update
Ghost需要Nginx服務器,並且SSL配置需要Nginx1.9.5或更高版本。
sudo apt-get install nginx
如果你的服務器使用了 ufw
,那麼你需要允許HTTP和HTTPS連接,打開防火牆:
sudo ufw allow 'Nginx Full'
安裝MySQL
數據庫官方建議使用MySQL,版本在5.5以上,且不大於8.0 。
sudo apt-get install mysql-server
Ubuntu18.04上的MySQL
如果你的服務器運行的是Ubuntu18.04,則需要輸入密碼確保MySQL與Ghost-CLI
兼容。
#進入mysql
sudo mysql
#修改root用戶的密碼,這裏的password改成你自己要設定的密碼
>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
#退出mysql
>quit
#切換回你的管理員用戶
su - <user>
安裝Node.js
官方建議使用10.x
的 LTS版本。
#添加Node10到APT倉庫
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
#安裝Node.js
sudo apt-get install -y node.js
安裝Ghost-CLI
Ghost-CLI
是一個命令行工具,可以快速安裝、配置Ghost。
sudo npm install ghost-cli@latest -g
安裝後可運行ghost help
驗證安裝。
安裝Ghost
注意:在
/root
或home/
目錄中安裝Ghost會導致安裝程序損壞,建議使用/var/www/ghost
目錄。
創建目錄
創建安裝目錄,並且設置所有者和讀寫權限。
#創建安裝目錄
sudo mkdir -p /var/www/ghost
#更改文件夾所有者
sudo chown <user>:<user> /var/www/ghost
#更改權限
sudo chmod 775 /var/www/ghost
#進入目錄
cd /var/www/ghost
開始安裝
前期環境均已配置好,下面開始運行安裝命令。
ghost install
安裝問題
安裝過程中Ghost-CLI
會提示配置一些選項。
Blog URL
輸入指向該服務器的域名,如https://giottolee.com
,官方文檔說這裏如果不使用域名直接使用IP地址會導致一些錯誤,但是我試着配了一下,也沒有報錯。儘管如此還是建議買一個域名,畢竟直接暴露IP地址還是有危險的。
MySQL hostname
配置數據庫來源,如果你的數據庫是在本地配置,就直接Enter
使用默認本地配置。如果你的數據安裝在另一臺服務器,就輸入服務器名字。
MySQL username/ password
輸入數據庫的用戶名和密碼。
Ghost database name
如果你的數據庫使用的是root用戶,則Ghost-CLI會自動創建一個數據庫。如果你使用的非root用戶,你需要手動創建一個數據庫,並且配置好權限,然後在這輸入數據庫的名字。
Set up a ghost MySQL user? (Recommended)
如果你的數據庫用戶使用的是root用戶,Ghost-CLI會爲Ghost創建一個新的數據庫用戶,這個用戶只能讀寫Ghost數據庫。
Set up NGINX? (Recommended)
自動配置Nginx,想都不想直接Enter。
Set up SSL? (Recommended)
直接Enter吧。
Enter your email
輸入你的郵箱地址,用來配置SSL。
Set up systemd? (Recommended)
使用ghost進程管理工具,推薦y
。
Start Ghost?
開始運行。
接下來你就可以通過你的域名訪問你的Ghost初始頁面了。