【Ghost】搭建個(gè)人博客

我先放個(gè)圖

前言

最近腦子一抽,想用ghost搭建一個(gè)博客。本來(lái)以為,直接把東西往服務(wù)器上一扔就行了。沒(méi)想到還要搞什么Linux,我這個(gè)Linux小白,被折磨的生無(wú)可戀。

零零碎碎的花了好幾天總算是能啟動(dòng)了,寫(xiě)個(gè)博客記錄一下部署過(guò)程。


開(kāi)始

1. 連上你的服務(wù)器

連上服務(wù)器我就不說(shuō)了,我用的服務(wù)器版本是 ubuntu16.04

2. 安裝nodejs環(huán)境

這里我們先來(lái)安裝nvm來(lái)管理node版本。

2.1 首先安裝wget

apt-get install wget

2.2 安裝nvm

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

執(zhí)行完以上面命令后,重新登錄一下服務(wù)器。重新登錄后,輸入

nvm --version

我的nvm版本

這條命令會(huì)打印當(dāng)前nvm版本號(hào),如果命令能夠正常執(zhí)行,就說(shuō)明nvm安裝成功了。

2.2 安裝nodejs

有了nvm,安裝nodejs就是易如反掌了,執(zhí)行類(lèi)似下面命令

nvm install v6.11.0

其中 "v6.11.0" 可以換成任意你需要的版本。
安裝完成后,nvm會(huì)默認(rèn)選擇剛剛安裝的版本,接著我們運(yùn)行一下node -v和npm
-v查看一下這兩個(gè)是否安裝成功。

node -v
npm -v

node -v
npm -v

至此nodejs安裝成功。

3. 安裝Nginx

安裝Nginx很簡(jiǎn)單,只需要一條命令即可。

apt-get install nginx

4. 安裝Ghost

4.1 創(chuàng)建目錄

首先我們新建一個(gè)存放Ghost目錄,并且進(jìn)入到該文件夾,執(zhí)行如下命令

mkdir -p /var/www/ghost
cd /var/www/ghost

4.2 下載,解壓ghost

我們先下載ghost

wget https://ghost.org/zip/ghost-latest.zip

接著解壓ghost的壓縮包,首先你的必須有unzip,沒(méi)有的話就先安裝一個(gè)。

apt-get install unzip

安裝好unzip后,我們解壓剛剛的壓縮包到/var/www/ghost目錄下

unzip -d /var/www/ghost ghost-latest.zip

確保你當(dāng)前目錄是在/var/www/ghost下,就可以安裝依賴(lài)模塊了

npm install --production

注意加 --production是只安裝生產(chǎn)環(huán)境的模塊,這樣安裝起來(lái)比較快。

你可能發(fā)現(xiàn)npm非常慢,而且還可能安裝失敗,那么我們來(lái)弄個(gè)淘寶鏡像cnpm吧,執(zhí)行如下命令

alias cnpm="npm --registry=https://registry.npm.taobao.org
--cache=$HOME/.npm/.cache/cnpm
--disturl=https://npm.taobao.org/dist
--userconfig=$HOME/.cnpmrc"

然后執(zhí)行

cnpm install --production

  • 2017年1月4號(hào)更新
    現(xiàn)在安裝完直接運(yùn)行會(huì)報(bào)錯(cuò),根據(jù)提示先手執(zhí)行

npm install -g knex-migrator
knex-migrator init

image.png

等待安裝完成后,啟動(dòng)ghost

npm start

最后如果你看見(jiàn)類(lèi)似于下面的界面,就說(shuō)明你運(yùn)行成功了。

成功運(yùn)行

5. 配置Ghost

如果觀察仔細(xì)的話,你會(huì)發(fā)現(xiàn)在/var/www/ghost下面多了一個(gè)config.js ,這是之前執(zhí)行了npm start后自動(dòng)生成的。我們先Ctrl+c停止ghost,然后來(lái)修改一下這config.js文件。

vim config.js

打開(kāi)后,找到如下部分,修改 <b>http://your_domain_or_ip_address</b>,將它替換為你的域名,或者服務(wù)器的IP地址。例如<b>http:// example.com</b>或<b>http:// 11.11.11.11</b>


...

config = {
    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: 'http://your_domain_or_ip_address',
        mail: {},
...

修改完成后,保存并退出。

6. 配置Nginx

到現(xiàn)在為止你已經(jīng)能正常啟動(dòng)了,但是ghost啟動(dòng)監(jiān)聽(tīng)的端口是本地,這個(gè)時(shí)候我們需要配置一下Nginx,讓外網(wǎng)能夠訪問(wèn)。

我們先進(jìn)入/etc/nginx目錄,備份一下/etc/nginx/sites-enabled中的默認(rèn)配置文件default

cd /etc/nginx
mv sites-enabled/default sites-enabled/default.bak

新建ghost的配置文件

vim /etc/nginx/sites-available/ghost

將以下配置放入該文件中,其中 <b>your_domain_or_ip_address</b> 改成你的域名或ip地址。

server {
    listen 80;
    server_name your_domain_or_ip_address;
    location / {
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass         http://127.0.0.1:2368;
    }
}

完成后保存并退出,并在/etc/nginx/sites-enabled目錄中為此文件創(chuàng)建符號(hào)鏈接來(lái)/etc/nginx/sites-enabled配置

ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost

完成后執(zhí)行

sudo nginx -t

如果成功將會(huì)看見(jiàn)下面輸出

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后一切完成,重啟一下nginx服務(wù)

sudo service nginx restart
此時(shí),你可以再次進(jìn)入/var/www/ghost目錄。啟動(dòng)ghost
cd /var/www/ghost
npm start

打開(kāi)你的瀏覽器,輸入剛剛配置的域名或ip,即可看見(jiàn)效果。

登登登登~完成~

完善

我們現(xiàn)在雖然能夠訪問(wèn)了,但是有一個(gè)特別尷尬的問(wèn)題就是我們會(huì)話一結(jié)束或者退出,ghost就自動(dòng)關(guān)閉了。那么這個(gè)時(shí)候我們就要安裝pm2來(lái)守護(hù)ghost進(jìn)程。

  1. 全局安裝pm2

npm -i pm2 -g

這個(gè)時(shí)候我的系統(tǒng)報(bào)了一個(gè)錯(cuò)誤,如果你安裝沒(méi)有錯(cuò)誤,可以跳過(guò)這段

錯(cuò)誤

查了一下,按stackoverflow中回答的方法成功解決,解決方案點(diǎn)這里。
簡(jiǎn)單說(shuō)只需要將我上圖中紅色圈出來(lái)的文件修改一下,將<b>uidSupport = process.getuid && process.setuid </b>替換成<b> uidSupport = false </b>即可。

pm2正確安裝后,再次來(lái)到/var/www/ghost目錄,執(zhí)行

pm2 start index.js

執(zhí)行成功的效果

此時(shí),執(zhí)行成功,這個(gè)時(shí)候你就可以安心的關(guān)閉遠(yuǎn)程會(huì)話了。
最后放上一個(gè)完成后的鏈接,www.xuxule.top


參考文獻(xiàn):

如何在Ubuntu 16.04上安裝和配置Ghost

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文章參考自 kitten 的這篇文章和 Ghost 官網(wǎng)王賽寫(xiě)的這篇文章那么既然已經(jīng)有人寫(xiě)了很詳細(xì)的文章,為什么我...
    Mitchell閱讀 3,975評(píng)論 4 3
  • 本文詳細(xì)地講述了如何從零到一在阿里云服務(wù)器上搭建你的Ghost博客。參考了之前的一些文章,過(guò)程大致一樣,但是自己又...
    jerry_mei閱讀 6,824評(píng)論 1 16
  • 博客地址 1. 域名購(gòu)買(mǎi) 域名就是網(wǎng)址,比如你輸入img421.com(一級(jí)域名),而我的博客blog.img42...
    Springer閱讀 3,138評(píng)論 4 20
  • 感恩爸爸媽媽三件事: 媽媽?zhuān)?.感恩媽媽在支持我到廣州學(xué)習(xí)金剛智慧,如果不是媽媽?zhuān)铱赡軙?huì)很窘迫的每月還貸款。 2...
    晶晶_37cd閱讀 192評(píng)論 0 0
  • 網(wǎng)上關(guān)于metaclass的文章很多,內(nèi)容也相當(dāng)全面生動(dòng)。在這里用學(xué)習(xí)記錄的方式嘗試自己復(fù)述一遍,加深理解。如有錯(cuò)...
    youcansea閱讀 409評(píng)論 0 0

友情鏈接更多精彩內(nèi)容