Hexo+git博客搭建

前言

早就想换一换我之前使用的wordpress博客了,昨天偶然看到一个学长的博客感觉前端简洁大气,于是查了一下他所用的Hexo这个博客框架。从doc来看使用简单,md的编辑方式很高效,浏览了一下主题也有几个不错的,于是趁着考试周之前的日子赶紧把博客搭建起来了。

搭建的环境是Mac+Ubuntu14.04

本地安装搭建博客

本地安装hexo框架

  1. 先使用homebrew安装npm:

    1
    brew install npm
  2. 使用npm安装Hexo

    1
    npm install hexo-cli -g
  3. 安装Hexo-server

     由于在hexo3中server被分离了出去所以要想在本地不通过apache等查看blog的话需要单独安装
    1
    npm install hexo-server --save

搭建博客

  1. 新建Hexo博客

    1
    2
    3
    4
    mkdir myBlog
    cd myBlog
    hexo init
    npm install
  2. 打开server:

    1
    2
    3
    4
    hexo server
    //结果如下:
    INFO Start processing
    INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop
  3. 生成静态文件:

    1
    hexo g

    如果此时显示hexo的帮助文档说明server没有成功安装。

     可以通过浏览器访问http://localhost:4000/查看博客。如果显示Cannot Get / 检查是否有npm install
  4. 更换主题

     我使用的主题为aircloud。从github上下载源码放入theme文件。将hexo的_config.yml中的theme部分改为
    1
    theme: aircloud

    再次generate之后查看浏览器,如果显示找不到index.html,一般是由于theme的名称没有写对。theme后面要写在theme文件夹下所选主题的文件名。

    在public文件夹下新建img文件夹,放入头像avatar.jpg和favicon.ico的icon图片,否则主题会显示找不到。
    如果使用此主题还有一些要修改的地方,直接参见其readme.md即可。
  5. 删除多余的tags
    1
    2
    hexo clean
    hexo d -g

通过git部署至远程服务器

配置git

  1. 首先确认自己是否拥有ssh密钥

    1
    2
    cd ~/.ssh
    ls

    我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。 ——git官网

  2. 将公钥放入服务器

     将公钥复制加入系统用户的 .ssh 目录下 authorized_keys 文件的末尾。如果没有此文件的话自己新建一下。
  3. 配置服务器

     新建一个用于存放博客代码的文件夹。然后初始化git,新建master分支
    1
    2
    git init
    git checkout -b master

    注意不要新建bare仓库,不然会没有blog文件,只有git版本控制文件。

     为了避免出现git拒绝push的情况,修改.git/config文件后面添加如下代码
    1
    2
    [receive]
    denyCurrentBranch = ignore
  4. 修改本地hexo的config文件

     加入deploy部分:
    1
    2
    3
    4
    deploy:
    type: git
    repo: gituser@yourIpOrUrl:~/myBlog/
    branch: master
  5. 部署blog至服务器

    1
    hexo d
  6. git hook
    远程git仓库在deploy之后并不会立刻更新,只有执行git reset --hard之后才可以,为了避免每次都手动执行这条语句,可以将它添加到myBlog/.git/hooks/post-update文件中。将原本的post-update.sample的.sample去掉即可使hook生效。
    如果deploy之后出现remote: fatal: Not a git repository: '.'
    就进一步修改post-update为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/sh
    #
    # An example hook script to prepare a packed repository for use over
    # dumb transports.
    #
    # To enable this hook, rename this file to "post-update".
    cd /root/myBlog
    unset GIT_DIR
    git reset --hard

配置apache2

  1. 安装apache2

     由于我的服务器上之前就已经安装好apache2,且过程很简单,这里就不写这部分的教程了,可以参看其他blog。
  2. 修改apache2配置

     Apache2的config文件在/etc/apache2/apache2.conf,修改如下内容
     添加文件访问权限
    1
    2
    3
    4
    5
    <Directory /your/blog/directory>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>

    修改Document/Root修改为你的git仓库的路径。

     如果服务器上配置了多个网站,可以通过添加virtualHost来配置路径。在此不详细说了。
  3. 更改文件权限

     将git仓库的文件权限改为755,其上层文件也应改为755
    1
    chmod -R 775 /filename
  4. 查看网页

     在浏览器输入服务器的ip或者url。如果出现没有权限访问,要检查自己的文件权限和config文件是否修改正确。注意不要将directory /的deny from all 改为require all granted,非常不安全

这篇小教程到这里就结束啦,希望你可以搭建顺利~

猜你喜欢

转载自www.cnblogs.com/ver0n1ca/p/hexo_and_git.html