现在的位置: 首页 > 黄专家专栏 > 正文

Octopress 和 Git 的结合

2014年10月30日 黄专家专栏 ⁄ 共 1016字 ⁄ 字号 评论关闭

Octopress 是一个静态博客系统,在我的 VPS 上搭建了这个 Blog 后,每一次写新的日志就需要在本机生成静态页面再通过 rsync 同步到服务器,这是个繁琐的过程,主要在于本机上也要安装 ruby 环境和 Octopress。如果在其他受限的环境下就只能存储编写的 markdown 文件,存储待以后发布或者 ssh 到 VPS 上发布,这是个比较恶心的过程。

Git 是一个分布式版本控制工具,如果 Blog 存储在 git 服务器上,那么就将版本和存储结合在一起,版本控制的天然优势也可以被 Blog 系统所利用,任意回退到某一个时间的状态就很容易实现。本文就将 Octopress 和 Git 结合在一起

VPS 搭建

1.安装 RVM

按照 http://rvm.io 提示

1
$\curl -sSL https://get.rvm.io | bash -s stable

2.安装 Ruby

Octopress默认使用的 Ruby 1.9.3

1
rvm install 1.9.3

3.安装 OctoPress

1
2
3
4
git clone https://github.com/imathis/octopress.git
cd octopress
bundle install
rake install

4.安装 nginx,将 web 目录指定到你的 octopress 上

Git 服务器搭建

1.将客户端的公钥加入服务器端

2.建立一个目录, 初始化 repository, 且改变远程 repository 的工作目录到网站需要部署的位置

1
2
3
4
5
git init --bare
git config core.bare false
git config core.worktree /path/web_directory
# /path/web_directory 是你的 web 目录
git config receive.denycurrentbranch ignore

3.hooks 目录中创建一个 post-receive 脚本(应该在.git/hook 里面)

1
2
3
4
5
GIT_WORK_TREE=/path/web_directory git checkout -f
# 这行很重要,不然会有环境权限问题
. /usr/local/rvm/scripts/rvm
cd /path/web_directory
rake generate 2>blog.log

4.成功

client 只要安装个 git 就好了,同步 repository, 然后 commit, push, 就会发现文章自动发布了。 这篇文章就是这样发布的:)

抱歉!评论已关闭.