目录

使用Jekyll在自己的服务器上搭建静态博客

安装升级ruby

可以使用yum install ruby或者其他软件管理器直接安装软件版本,但是经常会遇到从系统源上下载的版本过低的情况,这种情况下可以安装ruby的版本管理器rvm来管理获取ruby的版本。具体步骤如下:

  • 安装RVM官网要求,添加gpg密钥
1
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
  • curl -sSL https://get.rvm.io | bash -s stable 获取安装脚本并执行安装rvm
  • source /etc/profile.d/rvm.sh source配置文件使之生效
  • rvm requirements 下载rvm依赖
  • rvm list known 查看rvm库中的ruby版本
  • rvm install ruby-2.5.1 安装ruby指定版本
  • rvm use 2.5.1 default 设置ruby默认版本

安装jekyll及其他相关的插件

jekyll作为ruby的一个插件,可以直接使用gem来进行下载安装,由于某些原因,gem国内的访问很慢,所以需要修改源来解决

1
2
3
4
$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.com
# 确保只有 gems.ruby-china.com
  • 根据需要下载需要的gem插件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ gem install jekyll  # 安装jekyll
$ gem install bundler # gem管理器

# 如果使用github上的第三方主题会在_config.yml中定义所需要的插件
$ gem install jekyll-tagging  # 标签支持插件
$ gem install jekyll-sitemap # sitemap生成器
$ gem install jekyll-paginate # 分页支持
$ gem install pygments.rb # 代码高亮包
$ gem install kramdown # markdown 语法解析包
$ gem install jekyll-mermaid # 图表流程图等支持
.....

查找自己喜欢的主题

可以从jekyllthemes.org/查找自己喜欢的主题或者按照jekyll文档开发自己需要的主题

选择或者开发好主题,安装主题需要的插件后,在主题目录执行jekyll serve就可以启动本地服务进行调测。

一些常用的jekyll命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ jekyll build
# => 当前文件夹中的内容将会生成到 ./site 文件夹中。

$ jekyll build --destination <destination>
# => 当前文件夹中的内容将会生成到目标文件夹<destination>中。

$ jekyll build --source <source> --destination <destination>
# => 指定源文件夹<source>中的内容将会生成到目标文件夹<destination>中。

$ jekyll build --watch
# => 当前文件夹中的内容将会生成到 ./site 文件夹中,
#    查看改变,并且自动再生成。

$ jekyll serve
# => 一个开发服务器将会运行在 http://localhost:4000/

$ jekyll serve --detach
# => 功能和`jekyll serve`命令相同,但是会脱离终端在后台运行。
#    如果你想关闭服务器,可以使用`kill -9 1234`命令,"1234" 是进程号(PID)。
#    如果你找不到进程号,那么就用`ps aux | grep jekyll`命令来查看,然后关闭服务器。[更多](http://unixhelp.ed.ac.uk/shell/jobz5.html).

$ jekyll serve --watch
# => 和`jekyll serve`相同,但是会查看变更并且自动再生成。

部署jekyll生成的静态网站

jekyll官方文档中提供了github-pages和自己的服务器部署方式

这里建议使用post-receive钩子的方式进行部署

  • 在远程主机上创建一个git仓库
1
2
3
4
5
$ mkdir myrepo.git
$ cd myrepo.git
$ git --bare init
$ cp hooks/post-receive.sample hooks/post-receive
$ mkdir /var/www/myrepo
  • 添加下面的代码到 hooks/post-receive ,并保证服务器上已安装 Jekyll
1
2
3
4
5
6
7
8
GIT_REPO=/myrepo.git
TMP_GIT_CLONE=/tmp/myrepo
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $TMP_GIT_CLONE 
jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit
  • 在通过此钩子部署的用户机器上执行下面的命令
1
2
$ git remote add deploy deployer@example.com:~/myrepo.git
$ git push deploy master