建站背景
昨天在百度一個(gè)python用法時(shí)進(jìn)到一個(gè)個(gè)人博客里,查完用法之后突然覺(jué)得那個(gè)博客做得挺好,內(nèi)容充實(shí)有用,風(fēng)格簡(jiǎn)約,同時(shí)我也注意到那個(gè)博客是Hexo框架的,稍微百度了一下就發(fā)現(xiàn)Hexo挺有意思的,也比較適合做輕量級(jí)的博客。其中有一個(gè)hexo入門(mén)指南的文章里說(shuō)道:
ghost目前人氣最高,號(hào)稱是要取代WordPress的下一代博客平臺(tái)。不過(guò)問(wèn)題也正在于此,它的目標(biāo)定位是博客平臺(tái),像WordPress一樣重量級(jí)。僅用于一個(gè)獨(dú)立博客,有點(diǎn)高射炮打蚊子的意思。最關(guān)鍵的一點(diǎn),ghost生成的是動(dòng)態(tài)網(wǎng)站,依賴數(shù)據(jù)庫(kù),我的直覺(jué)立刻讓我放棄掉了ghost。
為什么我要排斥數(shù)據(jù)庫(kù)?一個(gè)原因是我對(duì)純文本有偏愛(ài),感覺(jué)上要比二進(jìn)制可控。但主要原因還是出于我的一個(gè)顧慮,說(shuō)來(lái)可笑:我希望到了年老昏花的時(shí)候,這個(gè)博客依然在。
那時(shí)可能已經(jīng)寫(xiě)不動(dòng)了,技術(shù)上的事更折騰不了,但我希望它還能運(yùn)行,能看。站在今天,無(wú)法預(yù)料那時(shí)候是什么操作系統(tǒng),天知道nodeJS能不能堅(jiān)持到那天,更別說(shuō)ghost。唯一能確定的是,越簡(jiǎn)單、對(duì)環(huán)境依賴越少,就越有可能長(zhǎng)命百歲。我可不想到時(shí)候發(fā)現(xiàn)博客打不開(kāi)了,戴上花鏡趴上前去一看,db connection error。
看到這段話的最后,我都沒(méi)忍住笑出聲了。這個(gè)作者也提到了一些用Hexo做個(gè)人博客的好處,我就不贅述了。我自己比較贊同的Hexo的一個(gè)優(yōu)點(diǎn)是博客內(nèi)容是以純文本記錄的,可以比較好的保存及遷移。
建站步驟:
主要分為三部分:
注冊(cè)github賬號(hào)并建立倉(cāng)庫(kù)(Repsitory);
注冊(cè)域名并與github綁定(可選).
以下為具體操作:
注冊(cè)github賬號(hào)并建立倉(cāng)庫(kù)(Repsitory):
進(jìn)入github官網(wǎng)注冊(cè)賬號(hào)并建立以username.github.io為名的倉(cāng)庫(kù)(Repository),username部分必須與注冊(cè)的用戶名完全相同(githubzhi只為每個(gè)用戶提供一個(gè)個(gè)人網(wǎng)站)。
本地安裝配置nodejs及hexo:#
安裝nodejs(官網(wǎng)給了好幾種裝發(fā),各種安裝帖里也列出了多種裝發(fā),此處為我自己安裝成功的方法):
~$curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
~$sudo apt-get install -y nodejs
安裝hexo:
安裝:
~$sudo npm install hexo-cli -g
~$hexo init blog
~$cd blog
~/blog$sudo npm install
~/blog$sudo npm install hexo-deployer-git --save
~/blog$hexo server
配置:
編輯 /blog/_config.yml文件
配置網(wǎng)站名稱等;
-
配置Deployment
deploy: type: github repository: https://github.com/username/username.github.io.git branch: master
新建CNAME文件: 在/myblog/public目錄下新建CNAME文件,文件內(nèi)容很簡(jiǎn)單,就是自己購(gòu)買(mǎi)好的域名。
發(fā)布:
如何寫(xiě)博客內(nèi)容就不贅述了,主要就是用Markdown文本寫(xiě)好內(nèi)容,放到myblog/source/_posts/文件夾下。
發(fā)布博客分兩步:
-
生成靜態(tài)網(wǎng)頁(yè):
~/blog$hexo g -
向github推送:
~/blog$hexo d
此時(shí),應(yīng)該就可以通過(guò)username.github.io.git訪問(wèn)網(wǎng)站了。
注冊(cè)域名并與github綁定(可選)
如果有購(gòu)買(mǎi)好的域名,在購(gòu)買(mǎi)域名的網(wǎng)站上對(duì)域名解析添加兩條CNAME記錄,講購(gòu)買(mǎi)的域名解析到username.github.io.git.
此時(shí),應(yīng)該可以通過(guò)購(gòu)買(mǎi)的域名訪問(wèn)網(wǎng)站了。
注: 如果要從不同電腦更新博客,可參見(jiàn)另一種做法.不過(guò)我在實(shí)踐是遇到了幾個(gè)問(wèn)題,一是npm install hexo-deployer-git應(yīng)該為sudo npm install hexo-deployer-git --save,不然在hexo d的時(shí)候會(huì)出現(xiàn)無(wú)法找到git的情況;二是執(zhí)行完4.2.5之后.git就會(huì)消失,我采取的辦法是在別的地方克隆倉(cāng)庫(kù),再把.git拷貝進(jìn)來(lái)。后來(lái)才發(fā)現(xiàn)原作者說(shuō)最開(kāi)始克隆完倉(cāng)庫(kù)就是拷貝一份再進(jìn)行后面的操作。