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

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

二.配置服務(wù)器
2.1 連接服務(wù)器
Linux/Mac OS X系統(tǒng)的電腦
- 打開(kāi)SSH客戶端
- 用戶名:root 實(shí)例:120.26.xxx.xxx
- 輸入實(shí)例密碼進(jìn)行登錄。
Windows系統(tǒng)的電腦
- 下載安裝Windows SSH和Telnet客戶端Putty。 下載Putty
- 用戶名:root 實(shí)例:120.26.xxx.xxx
- 按照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è)置密碼,

如果安裝過(guò)程中出現(xiàn) mysql Access denied for user 'root'@'localhost' (using password:YES) 解決方案:
- 打開(kāi)MySQL目錄下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并關(guān)閉文件。
- 重啟MySQL服務(wù)。
- 在命令行中輸入“mysql -uroot -p”(不輸入密碼),回車即可進(jìn)入數(shù)據(jù)庫(kù)。
- 執(zhí)行,“use mysql;”使用mysql數(shù)據(jù)庫(kù)。
- 執(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)題,這些我也管不了了。) - 打開(kāi)MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存并關(guān)閉文件。
- 重啟MySQL服務(wù)。
- 在命令行中輸入“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è)面,書寫博客。

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