Ghost 簡(jiǎn)介
Ghost 是一個(gè)基于 Node.js 的開源博客平臺(tái),由前 WordPress UI 部門主管 John O’Nolan 和 WordPress 開發(fā)人員 Hannah Wolfe 創(chuàng)立蔚袍,目的是為了給用戶提供一種更加純粹的內(nèi)容寫作發(fā)布平臺(tái)茄袖。
Ghost 簡(jiǎn)單輕量部署快,后臺(tái)使用具備預(yù)覽功能的 Markdown 編輯器進(jìn)行寫作恒界,這些就是我選擇它的原因喂柒。(下面提及的 Bug 還沒修復(fù),所以現(xiàn)在改用 Hexo 了 —— Ghost 博客一覽請(qǐng)點(diǎn)擊
搭建過程
主要參考了《使用 Nitrous.IO+OpenShift 免費(fèi)搭建 Ghost 博客》這篇文章棚放,下面就將搭建的過程簡(jiǎn)單的記錄一下枚粘,說說遇到的坑以及解決方法。
注冊(cè) OpenShift使用其提供的免費(fèi)服務(wù)搭建 Ghost Blog飘蚯。
注冊(cè) nitrous.io赌结,該服務(wù)提供了一個(gè)在線的 Linux 開發(fā)環(huán)境,稍后需要使用這個(gè)環(huán)境安裝 Ghost 和配置孝冒。注冊(cè)后創(chuàng)建 Node.js IDE 時(shí)需要通過手機(jī)短信進(jìn)行驗(yàn)證柬姚,經(jīng)測(cè)試中國(guó)移動(dòng)的號(hào)碼無(wú)法使用免費(fèi)的方案,遂借用 Heywire 這個(gè)手機(jī)應(yīng)用(獲得虛擬的美國(guó)號(hào)碼庄涡,免費(fèi)接收短信)完成了驗(yàn)證量承。
使用 nitrous.io 的 Node.js IDE 環(huán)境搭建 Ghost Blog:
- 安裝 rhc 工具(OpenShift 的客戶端工具):
sudo gem install rhc
- 初始化 rhc 工具:
rhc setup
(按照提示輸入用戶名密碼) - 安裝 Ghost Blog:
rhc app create ghost nodejs-0.10 mysql-5.1 --env NODE_ENV=production --from-code https://github.com/openshift-quickstart/openshift-ghost-quickstart.git
(該語(yǔ)句中的 ghost 以及下文 rhc 命令中的 ghost 同為 OpenShift 中的應(yīng)用名,可自行更改為其它內(nèi)容)
- 這時(shí)已經(jīng)可以通過
http://ghost-用戶名.rhcloud.com
連接訪問 Ghost Blog 了穴店,但是由于眾所周知的原因 OpenShift 很可能被墻了撕捍,這時(shí)候就得通過自定義域名來繞過圍墻:
- 在 OpenShift 中自定義域名:
rhc alias add ghost [你自己的域名]
- 在 DNS 服務(wù)商處,將對(duì)應(yīng)域名的 CNAME 記錄指向
ghost-用戶名.rhcloud.com
- 在 nitrous 中打開
ghost/config.js
文件泣洞,將'http://'+process.env.OPENSHIFT_APP_DNS
替換為'http://[你的域名]'
- 使用 CDN 加速訪問(非必須):
- 不知為何無(wú)法使用 Incapsula 服務(wù)忧风,獲取不到我的 IP,所以選擇了 Cloudflare球凰。
- 經(jīng)測(cè)試國(guó)內(nèi)訪問Cloudflare速度也不夠快狮腿,考慮備案然后使用國(guó)內(nèi)的 CDN 服務(wù)。
也是因?yàn)楸娝苤脑蚺凰撸枰鎿Q Google Font 使用 360 CDN 提供的字體庫(kù)缘厢,打開
ghost/content/themes/[主題]/default.hbs
文件,搜索fonts.googleapis.com
全部替換為fonts.useso.com
-
參考《解決 Ghost 中 gravatar 被墻不能顯示的問題》甩挫,數(shù)據(jù)庫(kù)相關(guān)信息可在 OpenShift 中找到:
mysql -u [數(shù)據(jù)庫(kù)用戶名] -p -D [數(shù)據(jù)庫(kù)名稱] Enter password:[數(shù)據(jù)庫(kù)密碼] select image from users where email = "your email address"; update users set image = "http://去掉www的Gravatar地址" where email = "your email address";
-
主題安裝:
cd ~/ghost/content/themes/ git clone [git地址]
可能需要為 git 設(shè)置默認(rèn)的用戶名以及郵箱贴硫,下載完主題后需刪除目錄下的 .git 目錄以及 .gitignore,以免稍后無(wú)法應(yīng)用更新伊者。
- 添加
多說(試用多說過程中彈出了廣告)Disqus評(píng)論區(qū)以及 Swiftype 站內(nèi)搜索的代碼可以放置在后臺(tái)Setting -> Code Injection
中英遭,不必修改主題。以下是我修改過的多說腳本(請(qǐng)將 short_name 改為自己的):
<!-- 多說公共JS代碼 start (一個(gè)網(wǎng)頁(yè)只需插入一次) -->
<script type="text/javascript">
var s = document.createElement("section");
s.className = "post-comments";
s.innerHTML = '<div class="ds-thread" data-thread-key="' + location.pathname.replace(/\//g,"") + '" data-title="'+ document.title +'" data-url="' + location.href.replace(/^https/, "http") + '"></div>';
document.querySelector(".post-container").parentNode.appendChild(s);
var duoshuoQuery = {short_name:"xxxxxxxxx"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- 多說公共JS代碼 end -->
- 更新應(yīng)用亦渗,在 nirtous 中做的所有更改均需通過 git 同步到 OpenShift 中挖诸,使用以下命令即可:
cd ~/ghost
git add .
git commit -m "[隨便輸入什么內(nèi)容]"
git push
等待更新成功提示出現(xiàn):`remote: Deployment completed with status: success`
- 開始寫作,通過網(wǎng)址
http://[你的域名]/ghost
初始化博客央碟,設(shè)置管理員賬號(hào)密碼税灌,然后進(jìn)入后臺(tái)寫作以及配置
未解之謎
- 嘗試配置七牛云存儲(chǔ)后無(wú)法啟動(dòng) Ghost -_-
- 嘗試在 cloudflare 中使用 page rule 功能使
demojameson.com
跳轉(zhuǎn)到www.demojameson.com
失敗均函,轉(zhuǎn)而使用 wwwizer 實(shí)現(xiàn)該功能,兩個(gè)域名均需在 cloudflare 中添加 CNAME 記錄菱涤,在 OpenShift 中添加 Alias - 有序列表中插入代碼塊會(huì)擾亂順序苞也,使用8 個(gè)空格的縮進(jìn)又不能指定代碼高亮,心好累……原來是個(gè)已知 Bug
{% asset_img ghost-markdown-bug.png %}