最近想搭建一個Ghost的個人博客系統(tǒng),在網(wǎng)上搜到了很多關(guān)于如何搭建Ghost系統(tǒng)的文章和方法,但是基本上不是過時(shí)了就是不能用的。剛開始我是按著別人給的流程在阿里云云主機(jī)上搗鼓的,遇到不少的問題嗽测,并不能完整成功的搭建出可用的Ghost博客系統(tǒng)。這對于我來說可不是一個很好的消息肿孵,因?yàn)槲乙坏Q定想做某一件事唠粥,必定抱著“不到黃河心不死”的決心。再說了我不能半途而廢就放棄自己的想法停做,所以深入的研究網(wǎng)上許多大牛們給出的方案晤愧,加上通宵達(dá)旦不懈的努力,終于走出了這個坑蛉腌!心想著肯定還有很多朋友會遇到這個問題官份,所以寫下此博文與大家分享一下,希望能幫到你們烙丛。
歡迎點(diǎn)擊我的博客前往查看效果舅巷。
我的配置信息
我個人采用Ghost + MySQL + Nginx來搭建的,以下是具體的版本信息:
- 系統(tǒng)版本:Centos6.8 64位
- MySQL版本:5.1.73
- Nginx版本:1.10.3
- Node版本:node-v0.12.18
- Ghost版本:Ghost v0.7.4 full(zh)
安裝環(huán)境準(zhǔn)備
yum update #更新為最新的yum源
yum install -y vim #安裝vim,不安裝則用vi
MySQL的安裝配置
開始安裝
Ghost-0.7.4 full(zh)默認(rèn)使用sqlite3數(shù)據(jù)庫河咽,但是sqlite對海量數(shù)據(jù)的讀寫效率比較慢钠右,影響頁面加載的速度從而造成用戶的體驗(yàn)感不佳。下面是安裝MySQL過程:
yum install mysql mysql-server #安裝MySQL服務(wù)
service mysqld start #啟動MySQL服務(wù)
mysql_secure_installation #根據(jù)實(shí)際需要配置MySQL密碼库北,這里不詳細(xì)說明
service mysqld restart #配置完后重啟生效
chkconfig mysqld on #設(shè)置MySQL開機(jī)自啟
配置文件
編輯MySQL的配置文件my.cnf
爬舰,修改字符編碼為utf-8
,讓博客系統(tǒng)支持中文寒瓦,不出現(xiàn)一堆螞蟻等火星文字
情屹,畢竟博客還是以中文為主的。
vim /etc/my.cnf
在對應(yīng)項(xiàng)上添加以下:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
在MySQL數(shù)據(jù)庫中添加一個ghost數(shù)據(jù)庫杂腰,并添加一個用戶:
mysql -uroot -p #回車后輸入你設(shè)置的密碼進(jìn)入到數(shù)據(jù)庫
create database ghost; #創(chuàng)建一個ghost數(shù)據(jù)庫垃你,數(shù)據(jù)庫名任意
grant all privileges on ghost.* to 'username'@'%' identified by 'passwd';
#說明:“username”為數(shù)據(jù)庫ghost指定用戶,不建議直接使用root用戶喂很,“passwd”為“username”用戶的密碼惜颇。
Nginx的安裝配置
準(zhǔn)備工作
安裝Nginx前添加一個repo
文件,用于安裝Nginx:
vim /etc/yum.repos.d/nginx.repo
編寫以下內(nèi)容(我就不具體說明每個字段的意思咯):
[Nginx]
name=Nginx
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
正式安裝
直接yum方式安裝Nginx:
yum install -y nginx #yum安裝
service nginx start #啟動Nginx服務(wù)
chkconfig nginx on #開機(jī)自啟
然后在瀏覽器輸入你的IP地址
就可以進(jìn)入一個Nginx
的歡迎界面少辣,出現(xiàn)如下圖就說明Nginx安裝成功了凌摄。
Nginx的反向代理配置
下面開始配置Nginx的反向代理(備份一下,在服務(wù)器上的配置文件不建議直接刪除):
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bar
cp /etc/nginx/conf.d/default.conf.bar /etc/nginx/conf.d/ghost.conf
vim /etc/nginx/conf.d/ghost.conf
配置成以下信息:
server {
listen 80;
server_name www.kalid.top; #這里是你的域名或IP地址
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368; #端口要與ghost中配置的一樣
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
然后讓Nginx重啟讓配置生效:
service nginx restart
Nodejs的安裝
特別說明一下:根據(jù)Ghost中文網(wǎng)對Ghost-v0.7.4 full(zh)關(guān)于Node版本選擇漓帅,我第一次安裝node-v0.10x時(shí)锨亏,發(fā)現(xiàn)在安裝ghost時(shí)提示node版本過低。原因是因?yàn)槲襶um安裝的Nginx是1.10.3版本忙干,要求node的版本不能過低器予。Ghost-v0.7.4 full(zh)官方建議是使用v0.10x,同時(shí)支持v0.12.x和v4.2.x版本。所以我就選擇了v0.12.18捐迫,順利的解決了版本問題乾翔。下面是安裝過程:
wget http://nodejs.org/dist/v0.12.18/node-v0.12.18.tar.gz #wget沒有的話,“ yum install -y wget ”安裝后再執(zhí)行上述命令
tar vxf node-v0.12.18.tar.gz -d /usr/local/src/ #解壓到指定目錄下
cd /usr/local/src/node-v0.12.18 #切換到解壓后的目錄下
./configure #簡單使用默認(rèn)配置
make && make install #編譯安裝node
Ghost的安裝與配置
開始安裝
創(chuàng)建ghost目錄施戴,將ghost安裝到此目錄下:
mkdir -p /var/www/ghost #創(chuàng)建目錄反浓,自己任意命令
cd !$ #切換到ghost目錄,"!$"表示上個命令的最后一個參數(shù)
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip #下載ghost
unzip Ghost-0.7.4-zh-full.zip #解壓ghost壓縮包到當(dāng)前目錄下
配置文件
在ghost目錄中將config.example.js
復(fù)制一份并命名為config.js
赞哗。
config.js中的config數(shù)據(jù)配置對象是一個多維度對象勾习,production(生產(chǎn)模式)和development(開發(fā)者模式),其中默認(rèn)使用的是development配模式,實(shí)際我們要運(yùn)行時(shí)是使用production模式懈玻。
下面進(jìn)行具體的配置:
cp config.example.js config.js #復(fù)制
vim config.js
然后修改config.js
中的production
選項(xiàng)內(nèi)容巧婶,使其使用mysql數(shù)據(jù)庫,注釋掉原來默認(rèn)使用的sqlite3
數(shù)據(jù)庫:
production: {
url: 'kalid.top', #你的域名或IP地址
mail: {},
database: {
client: 'mysql' #使用MySQL數(shù)據(jù)庫
connection: {
host : '127.0.0.1', #數(shù)據(jù)庫地址
user : 'username', #用戶名
password : 'passwd', #密碼
database : 'ghost', #創(chuàng)建的ghost數(shù)據(jù)庫
charset : 'utf8'
},
server: {
host: '127.0.0.1',
port: '2368' #該端口和nginx中g(shù)host.conf設(shè)置的端口要一致
}
}
至此涂乌,ghost博客基本就算搭建完成了艺栈。在ghost目錄下使用npm start
啟動ghost的開發(fā)者模式,然后在瀏覽器中輸入你的域名或IP地址
就可以訪問你搭建好的博客了湾盒。但是湿右,這僅僅是開發(fā)者模式下的博客,一旦斷開ssh連接罚勾,ghost進(jìn)程馬上就關(guān)閉毅人,導(dǎo)致我們不能正常訪問博客了吭狡。
解決ghost永久在線運(yùn)行的辦法
搭建的博客是希望它永久在線運(yùn)行的,要不然就沒有任何的意義了丈莺。怎樣才可以在斷開ssh連接后讓博客系統(tǒng)一直運(yùn)行呢划煮?網(wǎng)上也給出了很多的解決方案,我也嘗試了一下缔俄,發(fā)現(xiàn)不是很盡人意弛秋,可能是選擇的版本有直接的關(guān)系。為了解決這個問題俐载,我也是試了多次才就我目前選用的版本得到一個解決方案-------使用pm2在后臺來守護(hù)ghost服務(wù)進(jìn)程蟹略,不讓其下線,使其持續(xù)在production生產(chǎn)模式上運(yùn)行遏佣,這樣博客就不用擔(dān)心掉線的問題了挖炬。
pm2安裝過程
cd /var/www/ghost
npm install -g pm2 #安裝pm2
NODE_ENV=production pm2 start index.js --name "ghost" #指定入口文件和進(jìn)程名字
這樣,博客就可以持續(xù)正常運(yùn)行和訪問了状婶。
pm2使用說明
pm2 [option] 進(jìn)程名
茅茂。例如pm2 start ghost
啟動守護(hù)進(jìn)程ghost;pm2 restart ghost
重啟守護(hù)進(jìn)程ghost太抓;pm2 stop ghost
關(guān)閉守護(hù)進(jìn)程ghost空闲。
每一次修改ghost的信息,都要重啟一下才會生效走敌,這個需要提醒一下碴倾。
博客攻略
ghost博客使用說明
- 訪問博客前臺:第一次登陸要求注冊郵箱賬戶作為管理員賬號,直接使用域名或IP都可以訪問博客前臺了掉丽。
- 訪問博客后臺:瀏覽器地址輸入
你的域名/ghost
或是你的IP/ghost
跌榔,使用第一次注冊的管理賬號登陸就可以進(jìn)入博客后臺了。
博客主題更換
可以到博客:http://marketplace.ghost.org/下載你喜歡的主題捶障,有免費(fèi)的也有收費(fèi)的僧须,也可以自己制作一個專屬的主題哦。
我的采用的主題项炼,本人非常感謝該主題的制作者他的博客地址担平。
下面我簡單說一下主題如何的更換:
- 當(dāng)然了,先下載自己喜歡的主題锭部,上傳到
/var/www/ghost/content/themes/
目錄下暂论,并解壓; - 重啟一下pm2守護(hù)進(jìn)程ghost拌禾;
- 登錄到ghost后臺:“全局設(shè)置”--->“博客主題”選擇剛上傳的主題(已存在“Casper-zh-1.2.5”和“Roon-zh-1.1”兩個默認(rèn)主題)--->“保存”取胎;
- 刷新你的博客首頁,哇,你全新的博客主題出來了闻蛀!好好享受一下吧匪傍!
哈哈,是不是自己動手搭建好一個個人博客很雞凍熬跬础役衡!如果你在搭建過程遇到問題,可以隨時(shí)聯(lián)系我哦秧饮!
歡迎轉(zhuǎn)載!轉(zhuǎn)載請注明出處,謝謝合作泽篮!