啥是Ghost?
一個開源的輕型博客裹匙,其具體的介紹可以查看官方網(wǎng)站疯攒,這里筆者僅寫一些實(shí)戰(zhàn)的東西。博客效果如下圖澡罚,可以更換各種主題伸但,當(dāng)然也可以自定義主題:
- 一個開源的輕博客系統(tǒng),運(yùn)行在nodejs環(huán)境中留搔。
- 安裝即用更胖,方便快捷。
- 多款主題隔显,隨便選擇却妨,當(dāng)然,你也可以創(chuàng)建自定義主題括眠。
- 支持郵件彪标、云存儲等等,npm下載你需要的任何組件
- 過多不介紹掷豺,如果你想了解Ghost歷史捞烟,請自行查詢。
思路解析
- 首先当船,ghost運(yùn)行在nodejs環(huán)境下取具, 首先你要安裝nodejs若治、npm(nodejs的包管理工具)。
- 博客的文章存放在哪呢狸臣?當(dāng)然是數(shù)據(jù)庫了庄敛。所以你要搭建一臺數(shù)據(jù)庫仅偎,ghost默認(rèn)數(shù)據(jù)庫為sqlite,不過筆者還是建議使用mysql,畢竟其他數(shù)據(jù)庫我不熟桌粉。
- nodejs本身可以當(dāng)做服務(wù)器來使用,但為了負(fù)載均衡和一個服務(wù)器搭建多站點(diǎn)衙四,筆者還是搭建了一臺nginx,然后讓nginx轉(zhuǎn)發(fā)到nodejs服務(wù)器上患亿。
- 當(dāng)搭建完成之后传蹈,下載ghost包,然后安裝步藕、運(yùn)行惦界,這時,博客就搭建完成了咙冗。
真槍實(shí)干
1.安裝環(huán)境(數(shù)據(jù)庫沾歪、Nginx服務(wù)器、nodejs雾消、npm)
apt-get update
apt-get install mysql-server
apt-get install nginx
apt-get install nodejs
apt-get install npm
輸入以下命令進(jìn)行測試:
nodejs -v
npm -v
mysql --version
nginx -v
2.下載ghost包 到 Ghost中文網(wǎng) 下載集成包灾搏,因?yàn)槭褂胣pm install會很慢,并且容易出錯立润。
3.將npm的源換成國內(nèi)的源
臨時使用:npm --registry https://registry.npm.taobao.org install package
package是需要安裝的軟件包名
永久使用:npm config set registry https://registry.npm.taobao.org
使用
npm config get registry
來查看是否配置成功
4.安裝相應(yīng)軟件
- 解壓并進(jìn)入到ghost目錄:
unzip ghost.zip -d blog
- 進(jìn)入到blog:
cd blog
- 安裝相應(yīng)擴(kuò)展包:
npm install
錯誤1:下載包時間過長狂窑,導(dǎo)致安裝失敗。很可能是因?yàn)閾Q源的問題桑腮,解決方式就是換源泉哈;當(dāng)然還可能是你的網(wǎng)速的原因。
錯誤2:sh: 1:
node: not found
,這是什么原因呢破讨?系統(tǒng)中沒有這個node命令丛晦,我們有的命令是nodejs
,所以我們只需要將cp /usr/bin/nodejs /usr/bin/node
復(fù)制一份即可提陶,這時烫沙,node命令就存在了,二者作用一樣搁骑。
5.安裝成功
6.配置Nginx 因?yàn)槲覀儼惭b了nginx斧吐,nginx默認(rèn)監(jiān)聽80端口。這時仲器,我們需要配置nginx煤率,讓nginx轉(zhuǎn)發(fā)到nodejs搭建的服務(wù)器之上。
cd /etc/nginx/site-available
vim default
修改server下location選項(xiàng)乏冀,讓nginx轉(zhuǎn)發(fā)到nodejs
...(省略)
server {
...(省略)
server_name "修改成你自己的域名";
location / {
// 轉(zhuǎn)發(fā)到nodejs服務(wù)器之上
proxy_pass http://127.0.0.1:2368;
// 注釋掉下面這行蝶糯,只留下上面這個參數(shù)
// try_files $uri/ $uri/ = 404;
}
...(省略)
7.配置ghost相關(guān)選項(xiàng) ghost根目錄下有一個配置文件,為config.js;沒有的話復(fù)制一份config.example.js即可辆沦。
config = {
production: {
url: 'http://域名',
mail: {
transport: 'SMTP',
from: '郵箱@163.com',
options: {
host: 'smtp.163.com',
port: 25,
secureConnection: false,
auth: {
user: '郵箱@163.com',
pass: '郵箱授權(quán)碼'
}
}
},
// 配置MySQL 數(shù)據(jù)庫
database: {
client: 'mysql',
connection: {
host : '127.0.0.1',
user : '用戶',
password : '密碼',
database : '數(shù)據(jù)庫',
charset : 'utf8'
},
debug: false
},
server: {
host: '127.0.0.1',
port: '2368'
},
//Storage.Now,we can support `qiniu`,`upyun`, `aliyun oss`, `aliyun ace-storage` and `local-file-store`
//storage: {
// provider: 'local-file-store'
//}
// 阿里云OSS
storage: {
provider: 'oss',
bucketname: '你的bucketname',
ACCESS_KEY: '密鑰',
SECRET_KEY: '密鑰',
root: '/image/',
endpoint: 'http://oss-cn-qingdao.aliyuncs.com', //阿里云的上傳端點(diǎn)是分地域的昼捍,需要單獨(dú)設(shè)置
prefix: 'http://blog-ghost.oss-cn-qingdao.aliyuncs.com'
}
},
};
module.exports = config;
8.博客跑起來 項(xiàng)目根目錄下识虚,運(yùn)行
npm start --production
9.首次進(jìn)入后臺需要配置若干選項(xiàng) URL地址:域名/ghost
傻瓜式操作,下一步下一步安裝即可妒茬。
10.讓nodejs一直運(yùn)行
npm install forever -g # 全局安裝forever工具
NODE_ENV=production forever start index.js # 生產(chǎn)模式后臺運(yùn)行g(shù)host
forever list # 查看后臺運(yùn)行程序
forever stopall # 關(guān)閉所有