實(shí)戰(zhàn)篇-手把手教你搭建ghost博客

首先上個(gè)成品:eric.com

一.購(gòu)買域名,服務(wù)器

購(gòu)買的渠道很多,我是直接在阿里云官網(wǎng)把兩個(gè)買齊的.買域名沒(méi)什么需要注意的,搜一下自己喜歡的域名然后按步驟購(gòu)買就可以了.
買服務(wù)器的話,最低配置就可以滿足需求了,操作系統(tǒng)要選擇UBuntu 64位系統(tǒng),帶寬1M,具體配置如下:

image

買完服務(wù)器之后就可以進(jìn)行域名解析啦,域名解析如下,添加兩條就可以了
img

二.配置服務(wù)器

2.1 連接服務(wù)器

Linux/Mac OS X系統(tǒng)的電腦

  1. 打開(kāi)SSH客戶端
  2. 用戶名:root 實(shí)例:120.26.xxx.xxx
  3. 輸入實(shí)例密碼進(jìn)行登錄。

Windows系統(tǒng)的電腦

  1. 下載安裝Windows SSH和Telnet客戶端Putty。 下載Putty
  2. 用戶名:root 實(shí)例:120.26.xxx.xxx
  3. 按照Putty使用幫助進(jìn)行登錄。Putty使用幫助

ssh root@120.26.xxx.xxx
點(diǎn)擊回車,然后輸入你的服務(wù)器密碼,如果密碼無(wú)誤就會(huì)出現(xiàn)歡迎界面.

2.2 安裝Node.js&Nginx

sudo apt-get update sudo apt-get install -y python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js
如果敲上面的代碼出現(xiàn): add-apt-repository: command not found ,需要先安裝才能繼續(xù)進(jìn)行:
sudo apt-get install python-software-properties sudo apt-get install software-properties-common
安裝完成之后繼續(xù)執(zhí)行下面的命令:
sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
都執(zhí)行完之后用node -v查看安裝是否成功:v0.10.37
npm -v:1.4.28
接下來(lái)安裝Nginx: sudo apt-get install nginx

2.3 安裝MySQL

用MySQL數(shù)據(jù)庫(kù)來(lái)管理存儲(chǔ)博客的數(shù)據(jù)
sudo apt-get install mysql-server
安裝過(guò)程中系統(tǒng)會(huì)讓你給root用戶設(shè)置密碼,

image

如果安裝過(guò)程中出現(xiàn) mysql Access denied for user 'root'@'localhost' (using password:YES) 解決方案:

  1. 打開(kāi)MySQL目錄下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并關(guān)閉文件。
  2. 重啟MySQL服務(wù)。
  3. 在命令行中輸入“mysql -uroot -p”(不輸入密碼),回車即可進(jìn)入數(shù)據(jù)庫(kù)。
  4. 執(zhí)行,“use mysql;”使用mysql數(shù)據(jù)庫(kù)。
  5. 執(zhí)行,“update user set password=PASSWORD("rootadmin") where user='root';”(修改root的密碼)
    (期間我還select下user表中的記錄,查詢?nèi)康臅r(shí)候顯示了一些亂碼,然后我只查詢了user表中的Host、User、Password字段,貌似當(dāng)時(shí)顯示了3條記錄,有1個(gè)沒(méi)有名稱。當(dāng)然,為了解決問(wèn)題,這些我也管不了了。)
  6. 打開(kāi)MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存并關(guān)閉文件。
  7. 重啟MySQL服務(wù)。
  8. 在命令行中輸入“mysql -uroot -prootadmin”,問(wèn)題搞定!
    實(shí)際解決方案:刪除mysql,重新安裝
    安裝完MySQL后,設(shè)置utf8
    執(zhí)行命令: cd /etc/mysql
    編輯my.conf文件: vi my.cnf
    然后去修改一下配置文件,點(diǎn)擊i進(jìn)入插入模式
    [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8
    編輯完成之后,按ESC 然后 輸入 :wq,保存并退出編輯.然后重啟MySQL,
    service mysql restart
    之后我們來(lái)檢查一下修改是否正確,進(jìn)入MySQL命令行界面:
    mysql -uroot -p
    輸入之前設(shè)置的MySQL密碼,然后輸入指令:
    show variables like 'collation%';,檢查鍵值對(duì)是否一致,如果不一致,就去打開(kāi)剛才的配置文件檢查修改的是否有誤.
2.4 創(chuàng)建ghost數(shù)據(jù)庫(kù),配置Nginx
  • 為ghost創(chuàng)建一個(gè)MySQL數(shù)據(jù)庫(kù),執(zhí)行如下命令:
    mysql -uroot -p -e 'create database ghost;'
    系統(tǒng)會(huì)提示你輸入密碼,輸入剛才設(shè)置的MySQL的root用戶的密碼
  • 我們要用Nginx做ghost的前段代理服務(wù).首先進(jìn)入Nginx目錄下:
    cd /etc/nginx/sites-available/
    然后創(chuàng)建并且編輯ghost.conf配置文件:
    sudo touch ghost.conf
    sudo vi ghost.conf
    server { listen 80; server_name ericze.com; //替換為你自己的域名! location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } }
    然后為ghost.conf文件做一個(gè)軟連接到當(dāng)前目錄下(這一步不知道是為啥),反正照著做吧:
    sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf
  • 通過(guò)npm start 啟動(dòng)ghost的話,如果關(guān)閉了遠(yuǎn)程連接,Ghost也就停了,因此需要一個(gè)文件改動(dòng)監(jiān)聽(tīng)且自動(dòng)重啟的工具:forever來(lái)解決這個(gè)問(wèn)題,輸入一下命令安裝forever:
    sudo npm install forever -g
2.5 安裝Ghost

現(xiàn)在前戲已經(jīng)做足,重頭戲登場(chǎng),這里我參考的文章里給的方法都不太對(duì),我稍微花了點(diǎn)時(shí)間去查找.因?yàn)橄螺d的是zip文件,所以先下載個(gè)解壓工具,
進(jìn)入srv文件夾:cd /srv/
下載解壓工具:sudo apt-get install unzip
然后去下載Ghost: sudo wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip,這個(gè)地址是我當(dāng)時(shí)下載的最新版,如果要下載最新版,可以直接去官網(wǎng)拷貝,地址為: Ghost官網(wǎng)下載地址.
然后解壓ghost: sudo unzip ghost.zip -d ghost
解壓之后,進(jìn)入Ghost目錄修改配置文件:cd /srv/ghost/
拷貝一份配置文件模板:sudo cp config.example.js config.js
然后打開(kāi)配置文件進(jìn)行編輯:sudo vi config.js

配置文件里邊有兩種數(shù)據(jù)庫(kù),上邊的是sqlit3的,把那個(gè)注釋掉,然后下邊那個(gè)是MySQL的配置,把這個(gè)注釋打開(kāi),注意操作過(guò)程中不要出錯(cuò).這里只修改一下生產(chǎn)環(huán)境的配置信息,具體修改如下:
// ### Production // When running Ghost in the wild, use the production environment // Configure your URL and mail settings here production: { url: 'http://ghostchina.com', //替換為你自己的域名。 mail: {}, database: { updateCheck: false, client: 'mysql', connection: { host : '127.0.0.1', user : 'root', //我們暫且用 MySQL 的 root 賬戶 password : '123456', //輸入你的 MySQL 密碼 database : 'ghost', //我們前面為 Ghost 創(chuàng)建的數(shù)據(jù)庫(kù)名稱 charset : 'utf8' } }, server: { // Host to be passed to node's `net.Server#listen()` host: '127.0.0.1', port: '2368' } },
編輯完成之后最好檢查一下,因?yàn)殡S便輸錯(cuò)一個(gè)字符,就要從頭排查錯(cuò)誤,很傷!
比對(duì)無(wú)誤之后,按ESC,然后輸入 :wq保存并退出編輯.

  • 安裝ghost依賴庫(kù) 打開(kāi)ghost系統(tǒng)的目錄下面的package.json文件,將"sqlite3": "2.2.0", 這一行刪除掉(注意,你看到的 sqlite 版本可能會(huì)不一樣,但是,只是 sqlite3 字樣,刪除即可,不要注釋上,一定要把那一行刪除了).
    接下來(lái),進(jìn)入存放Ghost目錄下,安裝所以來(lái)的npm包:
    cd /srv/ghost
    sudo npm install --production
    當(dāng)所有依賴包安裝好之后,目錄下就多出一個(gè) node_modules 目錄.
終于可以啟動(dòng)ghost了!

執(zhí)行如下命令重啟Nginx:
sudo service nginx restart
然后進(jìn)入ghost文件目錄:cd /srv/ghost
使用forever工具啟動(dòng)ghost:sudo NODE_ENV=production forever start index.js
然后打開(kāi)瀏覽器輸入你的域名就可以看到ghost畫面了,如果你的域名沒(méi)有備案的話,可以先輸入服務(wù)器地址查看頁(yè)面,書寫博客。

image

在搭建過(guò)程中遇到什么問(wèn)題,可以聯(lián)系我交流問(wèn)題。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 文章參考自 kitten 的這篇文章和 Ghost 官網(wǎng)王賽寫的這篇文章那么既然已經(jīng)有人寫了很詳細(xì)的文章,為什么我...
    Mitchell閱讀 3,957評(píng)論 4 3
  • 博客地址 1. 域名購(gòu)買 域名就是網(wǎng)址,比如你輸入img421.com(一級(jí)域名),而我的博客blog.img42...
    Springer閱讀 3,131評(píng)論 4 20
  • 做開(kāi)發(fā)有些時(shí)間了,一直希望從高標(biāo)準(zhǔn)嚴(yán)格自己,也希望有個(gè)特色風(fēng)格的技術(shù)博客,看了喵神的博客,我很喜歡,于是就仿照做了...
    瀾色飛揚(yáng)閱讀 1,458評(píng)論 0 3
  • 最近的脾氣不好,大概不是因?yàn)楦邷氐木壒剩求w內(nèi)的板塊運(yùn)動(dòng)碰撞結(jié)果。 工作板塊與學(xué)習(xí)板塊,摩擦的次數(shù)比較多,于是,...
    木徒閱讀 259評(píng)論 1 1
  • 長(zhǎng)安古道馬遲遲,高柳亂蟬嘶。夕陽(yáng)島外,秋風(fēng)原上,目斷四天垂。 歸云一去無(wú)蹤跡,何處是前期?狹意生疏,酒徒蕭索,不似...
    李問(wèn)水閱讀 441評(píng)論 0 1

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