看到同窗有我的博客,內心癢癢的,想着也搞一個去,可是網上的博客都是在別人服務器上,感受太被動,我不喜歡。就去百度了下建站的過程,好像...並不難的樣子因而,開搞!html
期間踩了無數坑,百度和谷歌了無數次,軟件裝了又卸,卸了又裝,連服務器系統都重裝3次算是對的起標題的 "RE" 了。寫這篇文章是打算記錄下我搭建的過程,也算是個備忘錄吧,我的的記性實在是很差,不知道何時就忘了
node
購買域名的目的是人別人更好的記住你的博客,雖然Hexo靜態博客不綁定本身的域名也能夠經過Github分配給你的永久鏈接訪問,我的建議仍是買一個獨立域名,說不定別人就被你與(diao)衆(zha)不(tian)同的域名吸引了呢~linux
域名首選以.com爲後綴的,國際通用,簡單好用,如何購買請自行百度或谷歌「域名購買」或「域名註冊」,網上有很是多很是詳細的教程,這裏就不敘述了。git
因爲Hexo博客是部署在Github的倉庫上的,能夠不使用服務器,可是我這裏的小水管基本等同於沒有,更重要的在我瘋狂百度時領到了一張tx的代金券,so...就買了tx的雲服務器,還送了個一年的域名github
因此,不想增長開銷的能夠跳過這步,使用本身的電腦搭建,可是須要用到Node.js,因此shell
不要使用Windows!!!npm
不要使用Windows!!!json
不要使用Windows!!!vim
Windows版的Node.js根本就是殘疾版,別問我什麼知道...segmentfault
迴歸正題,服務器空間有通常有如下幾種
想要了解各個的優缺點及差別,能夠看看下面的介紹
虛擬主機、VPS和雲服務器的特色與差別性? ———— 知乎
全面解析:虛擬主機、獨立服務器、VPS及雲主機 ———— 億恩IDC資訊
我買的就是屬於雲主機,多虧是雲主機,讓我省了很多事。
還有,構架在大陸的且用於網站服務器的空間是必定要備案的,不想麻煩的話能夠購買香港或國外的空間。可是這裏咱們並非用於網站的服務器做用,只是將markdown解析成靜態html頁面,而後再部署到github倉庫上,因此並不須要備案。
服務器空間的選擇實在是太多了,我的也沒什麼推薦,只知道亞馬遜AWS能夠無償使用一年,其餘的可自行百度或谷歌。
接下來就正開始咱們的Hexo博客搭建。
有了服務器以後須要對服務器進行一系列設置。
首先,重裝系統,一個合適的系統會讓你的操做更加駕輕就熟。
選擇合適本身的操做系統,我選了Debian 9,由於習慣了了Ubuntu,apt-get
命令實在是太方便了。重裝系統後,root的密碼是不變的,這點謹記。
設置安全組,讓必要的端口暴露出來。tx的雲主機爲了安全,設置了安全組,只有在安全組以內的端口才可以使用。
關於更多安全組的信息,請參見 幫助與文檔 ———— 騰訊雲
通常使用SSH遠程登陸到服務器,Winows下經常使用的遠程登陸軟件有PuTTY和Xshell,前者爲自由軟件,後者爲商業軟件,能夠根據本身的喜愛選擇,這裏選用Xshell做爲介紹,PuTTY也是大同小異。
打開Xshell,新建會話
肯定以後就可使用能夠空間商給你提供的帳號和密碼登陸了。
通常來講,不建議使用root用戶來搭建Hexo博客,頗有可能會發現不可預料的錯誤,甚至是隻有你纔會發生的問題,別人都沒有,百度和谷歌都找不到解決辦法。爲了不這些問題,咱們須要一個不是root用戶可是有管理員權限的用戶。
在root用戶下,新建git用戶(用戶名能夠本身取,可是要好記)
adduser git
修改系統文件權限
chmod 740 /etc/sudoers
使用Vim編輯器打開
vim /etc/sudoers
找到
# User privilege specification root ALL=(ALL:ALL) ALL
在這下面添加一行
git ALL=(ALL) ALL
保存後退出,更改回原來的權限
chmod 400 /etc/sudoers
而後爲你的新用戶設置密碼
passwd git
好了,一個有權限的用戶就新建完成了。
切換git用戶,後面的操做都在git下進行,遇到須要權限的只須要在前面加上 sudo
就行
su git
安裝 Node.js 8
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs
安裝 Git
sudo apt-get install git-all
安裝完上面的必要軟件後就能夠安裝Hexo了。使用npm命令安裝Hexo。
sudo npm install -g hexo-cli
選擇初始化Hexo的目錄,通常目錄都會選擇本身的家目錄下。進入家目錄
cd ~
初始化Hexo,Hexo將會在指定目錄下新建所須要的文件,<folder>
即目錄名。
Hexo init <folder> cd <folder> sudo npm install
通常都會用 blog 做爲目錄名,因此
Hexo init blog cd blog sudo npm install
新建完成後,blog的目錄結構以下
. ├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes
若是你的目錄結構和上面示例的同樣,說明正確初始化了,若是發現目錄或文件不全,說明Hexo沒正確初始化,請刪除整個blog目錄從新初始化。
要想本地預覽Hexo博客,必須安裝本地服務器。Hexo 3.0 把服務器獨立成了個別模塊,必須先安裝 hexo-server
才能使用。
cd blog npm install hexo-server --save
注意,不加 --save
會安裝失敗!
啓動Hexo本地服務
hexo server
若是發現不能啓動服務,請返回上面仔細檢查安全組內是否有4000
端口,或者檢查端口是否打開了,或者檢查端口是否被其餘程序佔用!
啓動服務以後可使用 http://localhost:4000 訪問你的Hexo靜態博客了。因爲咱們是在服務器空間上,因此把 localhost
換成 你空間的公網IP
就能夠了。例如:http://192.168.0.1:4000
怎麼樣?是否是很激動?有種欣(da)喜(le)若(ji)狂(xue)的感受?別急,還沒完成呢
博客已經成型,來寫第一篇本身的博文吧。使用下面的命令建立新的文章,這會生成一個Markdown文件,默認在 blog/sources/_posts
目錄下
hexo new "你好,Hexo"
使用Vim編輯它
vim /sources/_posts/你好,Hexo.md
而後使用下面的命令生成靜態文件
hexo generate
固然,是能夠簡寫的
hexo g
啓動服務
hexo server
在瀏覽器輸入地址,就能夠看到本身寫的文章啦~
接下來,要將Hexo部署到Guthub倉庫上,讓別人也能夠訪問你的博客,成爲一個真正的網站。首先,須要進行配置。
打開Github,申請一個帳號,有帳號的就能夠跳過啦~
註冊完成後登陸Github,點擊右上角的"+",d點擊"New repository"
進去後,填寫格式以下,把 yourusername
替換成的你用戶名。
注意:格式必定是要是 yourusername.github.io
否則後面的步驟會報錯!!!
要想部署到Github,Git必須先知道你是誰。
git config --global user.name"你的Github用戶名" git config --global user.email"你註冊Github時填的郵箱"
進入blog目錄,編輯配置文件_config.yml
cd blog vim _config.yml
拉到最後,找到 deploy:
,修改以下,把 youruesername
替換成你的Githu用戶名
deploy: type: git repo: https://github.com/yourusername/yourusername.github.io.git branch: master
注意:配置文件中的內容,":"後面都有個空格,不能省略,否則會報錯!!!
開始正式將Hexo部署到Github,完成這一步,一個真正的博客網站就搭建好了。
清除緩存文件和已生成的靜態文件
hexo clean
生成靜態文件
hexo generate
部署到Github
hexo deploy
合併簡寫
hexo d -g
或者
hexo g -d
這兩個命令都是能夠的。而後會提示你輸入你的Github帳號和密碼,輸入後沒有任何報錯,就證實部署好了。接下來在瀏覽器輸入Github給你供的永久鏈接http://yourusername.github.io就能進入你的博客啦~~這個鏈接除非Github服務器出問題了,否則是永久有效的。
不容易啊!快要淚流滿面的對不對?我當初建好的時候但是大叫了出來,旁邊的人看我眼神都不對了(瑪德,zz!)
雖然能夠經過上面的永久連接訪問你的博客,可是這一點都不個性化,也很繁瑣,讓你的博客有個本身獨立的域名,是十分必要的。
進入你購買的域名的域名管理,選擇解析
而後點擊"添加記錄",會有提示
這裏要說下,這裏記錄類型有人填"A",也有人填"CNAME"。A類型就是填你的永久連接指向的IP地址,CANME類型就是直接填你的永久連接。可是,Github分配給你的IP地址有可能會改變,可是連接是不會變!我的建議仍是填CNAME類型。這裏就把兩種都敘述下。
使用 ping
命令得到Github分配給你的ip地址
ping yourusername.github.io
例如:
我這裏得到的ip就是 151.101.77.147
添加兩條記錄,一條主機類型爲"@",一條主機類型爲"www"
直接添加兩條記錄,一樣也是一條主機類型爲"@",一條主機類型爲"www"
好了,這樣記錄就添加完成。
而後修改DNS服務器,將DNS1,DNS2分別修改成
f1g1ns1.dnspod.net f1g1ns2.dnspod.net
域名解析就完成了,解析的域名會在10分鐘甚至更長的時間內生效,請稍安勿躁。在等待的時候可先進行下面的操做。
若是,你的域名解析完成,這時候你在瀏覽器輸入你的域名想看看本身的博客,然而你會發現
並不能進入本身的博客。這時候還須要進行一步操做。
在blog/source
目錄下,新建一個文件CNAME
文件,注意:文件名大寫,沒有後綴!
cd blog/source/ vim CNAME
內容就是你的域名,注意:不用加 www
!
例如,個人域名
newkami.cn
而後更新到Gitub
hexo clean hexo g -d
若是你的域名解析正常,就能夠看的你的博客啦~若是顯示沒法訪問此網站,則是你的域名還沒解析完成,請耐心等待,若是顯示的是Github 404界面,則是你的CNAME或其餘的問題,請仔細檢查上面的步驟!
做爲一個強迫症患者,看着自家的網站用着http協議被瀏覽器標識爲"不安全",簡直不能再不爽了。想着我也去搞了個SSL證書,讓本身的博客支持HTTPS協議。忽然發現tx居然能免費申請SSL證書!大喜!
通過4-5天漫長的等待,證書終於審覈好了
而後我就急忙着去配置了,結果提示
誒?咋就這麼麻煩呢?!要接入那咱就接入吧,心想着,結果,來了這麼一出
哇,tx你這是在玩我吧
奈何Github倉庫並不能備案,這條路也就完全斷了。在我快把百度和谷歌查爛的時候,發現了Cloudflare。
Cloudflare以向客戶提供網站安全管理、性能優化及相關的技術支持爲主要業務。經過基於反向代理的內容傳遞網絡(ContentDeliveryNetwork,CDN)及分佈式域名解析服務(DistributedDomainNameServer),Cloudflare能夠幫助受保護站點抵禦包括拒絕服務攻擊(DenialofService)在內的大多數網絡攻擊,確保該網站長期在線,同時提高網站的性能、訪問速度以改善訪客體驗。
以上摘自百度百科。
因而,我就着手把域名接入了Cloudflare。
進入Cloudflare,註冊一個帳號
註冊完成後,填寫你的域名,讓Cloudflare去解析
而後,Cloudflare會要求你修改DNS,讓你的網站的請求流至Cloudflare。進入你的域名管理,把DNS服務器修改爲Cloudflare提供的DNS,當看到
你的域名就成功接入Cloudflare了。
將"老是使用HTTPS"設爲開啓
至此,你的網站就成功開啓了https了,進入你的網站瀏覽器是這樣顯示的
怎麼樣?看見有個小綠鎖是否是有種安心的感受呢?
從開始寫到如今,過了好幾天了,期間由於其餘的事,寫寫停停,總算寫完了。若是這篇文章哪怕有幫到你一點點,也算有意義了。
第一次寫教程,若有錯誤,請斧正!
歡迎轉載,轉載請註明出處:https://newkami.cn/2017/09/13/re-build-blog/