前言
搭建自己的個人博客網站,這是多少程序員兒時的夢想。(此處的兒時指的是剛開始接觸編程的時候)
爲此,折騰了不少。嚐遍各種第三方博客網站(博客園、CSDN、掘金、知乎),還是決定使用 Jekyll + Github 搭建自己的獨立博客網站。
Github 可以幫助我們構建 Jekyll 博客,只需要新建一個倉庫就可以。優點是免費,缺點是百度檢索困難。不過這一點影響也不大,可以另外使用 Gitee(國內版的 Github)。
我個人是使用獨立的服務器自行搭建的 Jekyll 環境,趁着服務器還有不少時間,擺着不用也是浪費~(哪怕後續服務器沒了,照樣可以用Github)
文章使用的 Github 進行管理,因爲用 Github 寫文章太爽了,跟寫代碼似的,也不易丟失。
技術方案就是服務器啓動 Jekyll Server,另加 crontab 定時任務,拉取最新的 Github 上的文章。實現自動化更新博客網站,這種方式用着挺省心的!
大家可以在公衆號後臺回覆“博客”兩個字訪問我的博客看看效果。
話不多說,下面分享我的教程。
進入正文
1、首先購買一臺Centos系統的服務器
推薦使用騰訊雲,網速快,性能穩定,客服處理問題及時,現在點這條鏈接就可以享受2折優惠:https://curl.qcloud.com/zjig4QkV【點擊底部閱讀原文直達】
2、安裝Git
對 Git 的版本沒啥要求,能 pull 就行。
yum -y install git
3、必須保證Ruby2.7版本以上,筆者安裝的低版本遭了不少麻煩
兩個方法安裝高版本Ruby:
(1)升級yum
# 升級yum:
Centos 5.X:
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
CentOs 6.x:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
CentOs 7.X:
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 安裝Ruby
yum -y install ruby
(2)手動下載ruby最新版,本地安裝
# 下載編譯
./configure
make
sudo make install
安裝完之後修改gem的源爲國內,不然很慢
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
4、安裝Jekyll
順帶指定下版本。
gem install jekyll -v 4.1.1
5、新建博客
jekyll new myblog
cd myblog
6、啓動博客
jekyll server
7、克隆已有博客
如果不想自己再搭建一套博客,推薦克隆別人做好的博客,修改使用。
比如我比較喜歡的簡潔風
git clone https://github.com/yous/whiteglass.git
8、安裝依賴
clone 到本地後需要安裝gem依賴,進入Gemfile文件所在目錄,Gemfile文件列好了所需要的gem依賴,你需要的就是執行它。但是有些Gemfile內規定了Jekyll的版本號,如果你本地安裝了其它版本的Jekyll,可能會產生衝突。解決方法一是卸載Jekyll,二是註釋掉Gemfile文件內安裝Jekyll的那一行代碼。
# 運行Gemfile
bundle install
# Gemfile文件一般包含如下依賴
gem install jekyll-paginate -v 1.1
gem install jekyll-sitemap -v 1.0
gem install jekyll-archives -v 2.1
grm install jekyll-feed -v 0.12
9、服務器後臺啓動
本地啓動不需要這麼多參數
# 本地啓動
jekyll server
# 服務器後臺運行
jekyll server --host 0.0.0.0 --port 80 --detach
10、crontab定時任務
分享下我的Linux定時任務咋寫的:
# 十分鐘拉取一次
*/10 * * * * ~/blog/flush.sh >> ~/blog/temp.log
flush.sh 更新腳本:
#!/bin/bash
cd ~/blog
echo "===GIT==="
git pull
echo "===JEKYLL==="
/usr/local/bin/jekyll build
echo "===TIME==="
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "${time} ok"
echo " "
FAQ
如果你克隆的項目下有 Gemfile.lock 文件記得刪除,這個文件類似於版本號。
作者:薛師兄,互聯網從業者,編程愛好者。
本文首發自公衆號:程序員薛師兄(ID:onblog)
本文分享自微信公衆號 - 代碼藝術(onblog)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。