如何搭建 Jekyll 个人博客网站
前言
搭建自己的个人博客网站,这是多少程序员儿时的梦想。(此处的儿时指的是刚开始接触编程的时候)
为此,折腾了不少。尝遍各种第三方博客网站(博客园、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 文件记得删除,这个文件类似于版本号。
版权声明:凡未经本网站书面授权,任何媒体、网站及个人不得转载、复制、重制、改动、展示或使用本网站的局部或全部的内容或服务,或在非本网站所属服务器上建立镜像。如果已转载,请自行删除。同时,我们保留进一步追究相关行为主体的法律责任的权利。我们希望与各媒体合作,签订著作权有偿使用许可合同,故转载方须书面/邮件申请,以待商榷。