如何使用Git部署Jekyll博客

来自菜鸟教程
跳转至:导航、​搜索

介绍


Jekyll 是一个从 Markdown 文件目录生成静态 HTML 站点的工具。 这是有利的,因为生成的网站是快速、可移植的,并且对于像 nginx 这样的服务器而言,无需借助缓存即可同时为许多用户提供服务。

使用 Jekyll 最流行的方法是将站点的文件保存在 Git 存储库中,在本地编辑它们,然后使用 git push 将站点部署到您的 VPS。

本地安装


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

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

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

完成后(需要几分钟),注销并重新登录。 安装 Jekyll 很简单,只需获取 jekyll gem。

gem install jekyll

现在你需要Git,你可以从官网下载或者使用包管理器安装。 (Mac 用户可以使用 Homebrew,Linux 用户可能已经知道他们在做什么......)

创建博客


Jekyll 网站 提供了使用该工具的快速入门指南,以及详尽的文档。 我们将在这里介绍绝对基础知识,但对于日常使用和自定义,您应该参考他们的指南。

导航到您想要在本地计算机上存储博客文件的任何位置,然后创建一个新博客,如下所示:

jekyll new awesomeblog

这将创建一个 awesomeblog 目录,其中包含配置文件、帖子目录和其他所需的位。 现在您可以切换到该目录并启动服务器进程以在浏览器中预览它。

cd awesomeblog
jekyll serve

Jekyll 将构建您的博客,几秒钟后您应该可以在浏览器中访问 http://localhost:4000

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

git init
git add .
git commit -m "Initial commit"

准备 VPS


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

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

apt-get install git-core

如果您使用的是其他发行版,这可能会有所不同。 例如,Fedora 使用 yum install git-core 代替。

您还需要安装 Ruby 和 Jekyll。 和之前一样:

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

其次,切换到您的主目录并创建一个新的“裸存储库”以进行部署。

cd ~/
mkdir repos && cd repos
mkdir awesomeblog.git && cd awesomeblog.git
git init --bare

之后,我们需要设置一个 post-receive 挂钩。 这是 Git 在将文件推送到存储库时运行的 shell 脚本。 像这样创建它:

cd hooks
touch post-receive
nano post-receive

现在粘贴以下脚本,相应地调整变量。 GIT_REPO 是上一步中创建的裸存储库的路径,TMP_GIT_CLONE 是脚本在将文件复制到 [X190X 之前签出文件并构建博客的位置]。 PUBLIC_WWW 是最终站点所在的路径。 在此示例中(假设您的 Web 根目录是 /var/www),该站点将出现在 http://example.org/awesomeblog,而如果 PUBLIC_WWW 读取 /var/www 代替。

#!/bin/bash -l
GIT_REPO=$HOME/repos/awesomeblog.git
TMP_GIT_CLONE=$HOME/tmp/git/awesomeblog
PUBLIC_WWW=/var/www/awesomeblog

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

按 control+O 并按 Enter 键保存文件。 然后赋予文件可执行权限。

chmod +x post-receive

添加一个 Git 遥控器


回到您的本地计算机上,将远程添加到您博客的 Git 存储库。

git remote add droplet user@example.org:repos/awesomeblog.git

现在您应该能够使用以下命令将您的最新提交推送到服务器:

git push droplet master

每当您在 Jekyll 中发表新博客文章时,将更改提交到 Git 存储库并推送到您的 VPS。 云服务器将构建站点,更改将在几秒钟内生效。

文章提交者: [[“%3Ca|https]] ://twitter.com/redwall_hp [[“%3C/a|”>马特·哈泽夫斯基]]