如何使用 Git 部署 Jekyll 博客

介绍


Jekyll是一个工具,从Markdown文件的目录中生成静态HTML站点,这是有利的,因为由此产生的网站是快速的,便携式的,很容易像nginx这样的服务器同时为许多用户提供服务,而无需使用缓存。

使用Jekyll的最流行的方法是将网站的文件保存在一个Git(LINK0)存储库中,本地编辑它们,并使用git push将网站部署到您的VPS。

本地安装


如果你还没有,你需要在本地机器上安装 Ruby、Jekyll 和 Git。

对于 Ruby,您可以使用单个命令安装最新版本的 Ruby 2.0 与 RVM:

1curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0

一旦完成(需要几分钟),退出并重新登录,安装Jekyll是抓住jekyll宝石的简单事情。

1gem install jekyll

现在你需要Git,你可以从官方网站下载(http://git-scm.com/)或使用包管理器来安装(Mac用户可以使用Homebrew,在Linux上的人可能已经知道他们在做什么...)

创建一个博客


Jekyll网站有一个快速开始使用该工具的指南,以及彻底的文档. 我们将涵盖这里的绝对基础,但对于日常使用和定制,你应该参考他们的指南。

导航到您想要在本地机器上存储博客文件的任何地方,并创建一个新的博客:

1jekyll new awesomeblog

这将创建一个包含配置文件,帖子目录和其他必要的位的awesomeblog目录,现在您可以更改到该目录并启动服务器流程,以在浏览器中预览它。

1cd awesomeblog
2jekyll serve

Jekyll 会创建你的博客,几秒钟后,你可以在浏览器中访问http://localhost:4000

现在,让我们在同一个目录中初始化一个Git存储库,这样你所做的任何更改都可以被跟踪。

1git init
2git add .
3git commit -m "Initial commit"

准备VPS


为了简化,我会假设你已经有一个VPS运行Web服务器,如nginx或Apache(我也会假设你的公共HTML文件夹是 /var/www,尽管它可能因你的分发和配置而有所不同) 如果你还没有这样做,请参阅 nginx上的许多可用的教程。

首先,在您的VPS上安装Git,在Ubuntu或Debian的情况下,您可以使用以下命令安装git-core包。

1apt-get install git-core

例如,Fedora 使用「yum install git-core」代替。

您还需要安装 Ruby 和 Jekyll。

1curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
2gem install jekyll

其次,更改您的主目录,并创建一个新的 bar repository来部署。

1cd ~/
2mkdir repos && cd repos
3mkdir awesomeblog.git && cd awesomeblog.git
4git init --bare

接下来,我们需要设置一个接收后链接. 这是一个壳脚本,Git在将文件推到存储库时运行。

1cd hooks
2touch post-receive
3nano post-receive

现在粘贴在以下脚本中,相应调整变量. GIT_REPO'是上个步骤所创建的光线寄存器的路径,TMP_GIT_CLONE'是脚本在将文件复制到/var/www'之前检查并构建博客的地点。 PUBLIC-WWW ' 是最后场址的所在地。 在这个例子中(假定你的网络根是 " /var/www " ),网站将出现在http://example.org/awesomeblog',而如果PUBLIC_WWW ' 改为/var/www',则网站将出现在http://example.org'.

1#!/bin/bash -l
2GIT_REPO=$HOME/repos/awesomeblog.git
3TMP_GIT_CLONE=$HOME/tmp/git/awesomeblog
4PUBLIC_WWW=/var/www/awesomeblog
5
6git clone $GIT_REPO $TMP_GIT_CLONE
7jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW
8rm -Rf $TMP_GIT_CLONE
9exit

通过按控制 + O 来保存文件,然后点击 enter 键,然后给该文件可执行的权限。

1chmod +x post-receive

添加远程 Git


在本地机器上,将远程数据添加到您的博客的Git存储库中。

1git remote add droplet [email protected]:repos/awesomeblog.git

现在,您应该能够通过以下命令将最新承诺推向服务器:

1git push droplet master

每当你在 Jekyll 中创建一个新的博客帖子时,请将更改进行到 Git 存储库中,然后点击您的 VPS. 云服务器将构建该网站,并在几秒钟内实现更改。

Article Submitted by: Matt Harzewski
Published At
Categories with 技术
comments powered by Disqus