octopress 远程部署

在Linode VPS上安装了octopress后,然后捣腾远程部署的问题,在wenbing的帮助下终于搞定了。
主要步骤:

1 建立git仓库

在VPS以octopress安装目录为源库建立一个git仓库

    git clone --bare ~/octopress ~/git/octopress.git

2 更改远程仓库工作目录到需要部署的目录

    git config core.bare false
    git config core.worktree ~/octopress
    # 我把home下的octopress作为工作目录
    git config receive.denycurrentbranch ignore

3 设置post-reveive hooks

在远程git仓库下设置钩子(hooks)脚本hooks/post-receive,内容如下

    #!/bin/sh
    GIT_WORK_TREE=$HOME/octopress/ git checkout -f
    cd $HOME/octopress/
    PATH=$PATH:/usr/local/rvm/rubies/ruby-1.9.2-p290/bin
    # 这个拼接的路径可以通过which rake 获取,我的服务器是ubuntu
    rake generate
    rake deploy
    # 我的工作目录不是web目录,这个设置方法参考octopress的doc

4 更改post-receive权限

设置完成后将post-receive文件的权限设置为可执行,钩子脚本将在收到远程push之后执行

    chmod a+x post-receive

5 设置remote url

本地配置好octopress之后,将remote的url设置为远程仓库的地址

git remote set-url origin linodevps://git/octopress.git

现在本地写完文章后push就可以自动发布了

comments powered by Disqus