通过hexo搭建自己的blog

背景介绍

这是博主在网上查找资料时发现这个博客的风格非常好,借着一时兴趣决定自己也开始写博客,分享自己的学习过程。

打开官网就可以看到hexo的介绍:A fast, simple & powerful blog framework。hexo本身只是一个基于Node.js的博客框架,并且可以将生成的静态资源托管到github上,然而github国内访问速度还是非常慢的,所以本文已云主机为案例,教大家如何通过云主机快速搭建自己的hexo-blog。

mac端配置

  • 安装node.js,打开Node百度云盘下载地址进行下载点击安装。

    正常安装完了可以输入npm命令进行查看,我第一次是拿pkg安装包安装的,安装完发现没有该命令,排查后发现是安装在了/usr/local/bin目录下了,该路径没有权限导致的,

    1
    $ sudo chmod 755 /usr/local/bin   就ok了。
  • 安装hexo:打开终端输入如下命令

    1
    $ sudo npm install -g hexo
  • 安装git:

    1
    $ npm install hexo-deployer-git --save
  • 配置hexo:

    新建一个目录,作为hexo的文件目录,我个人比较喜欢放在桌面

    1
    2
    3
    $ cd Desktop/
    $ mkdir hexo
    $ cd hexo

    初始化博客

    1
    $ hexo init

可以去桌面看下文件夹下出现很多生成的文件,在hexo目录下对_config.yml进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
$ vim _config.yml
# Site
title: 赫鲁晓峰blog #填写网站名,会在标签页上显示
subtitle: 网络教程之家 #副标题,网站名下面
description: 纯自我娱乐 #网站描述,便于搜索引擎用关键词检索
author: junfeng #作者
language: zh-Hans #语言,中文
timezone: Asia/Shanghai
然后在该配置文件的最下面有发布到你云主机的配置
deploy:
type: git
repo: ssh://hexo@云主机公网ip:ssh的端口/home/hexo/hexo.git
branch: master

服务器端配置

  • 登录到云主机,添加hexo用户,并设置密码

    1
    2
    # adduser hexo
    # passwd hexo

    给hexo用户添加root权限

    1
    2
    3
    4
    5
    # chmod 755 /etc/sudoers
    # vim /etc/sudoers
    在root ALL=(ALL) ALL下面添加
    hexo ALL=(ALL) ALL
    # chmod 440 /etc/sudoers
  • 添加mac的ssh公钥到云主机/home/hexo/.ssh文件夹下的authorized_keys文件

    获取mac的ssh公钥:在mac终端输入如下命令一直回车

    1
    2
    $ ssh-keygen -t rsa -C "xxxx@xxxx.com"
    $ cat ~/.ssh/id_rsa.pub | pbcopy

获得公钥后,回到云主机

1
2
3
# mkdir /home/hexo/.ssh
# vim /home/hexo/.ssh/authorized_keys
粘贴刚刚复制来的内容
  • 配置ngix,安装可以通过yum -y install nginx进行安装

    删除原有配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # rm -rf /etc/nginx/conf.d/*
    # vim /etc/nginx/conf.d/hexo.conf 添加如下配置
    server {
    root /home/hexo/www; #网站根目录
    index index.html index.htm;
    server_name www.astayang.com; #你的域名
    location / {
    try_files $uri $uri/ /index.html;
    }
    }
    # vim /etc/nginx/nginx.conf 将user nginx;改为user hexo;
  • 切换到hexo用户,并在/home下创建hexo文件夹做为家目录

    1
    2
    3
    # su hexo
    $ cd
    $ mkdir www
  • 测试启动nginx服务,出现successful说明没问题,并开启nginx服务

    1
    2
    3
    $ sudo nginx -t 
    $ sudo service nginx start
    $ sudo chkconfig nginx on
  • 配置git,输入如下配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $ sudo yum install git
    $ cd
    $ mkdir hexo.git
    $ cd hexo.git
    $ git init --bare
    Initialized empty Git repository in /home/hexo/hexo.git/
    退回root用户
    # sudo vim /home/hexo/hexo.git/hooks/post-receive
    添加如下内容:
    #!/bin/bash
    GIT_REPO=/home/hexo/hexo.git
    TMP_GIT_CLONE=/tmp/HexoBlog
    PUBLIC_WWW=/home/hexo/www
    rm -rf ${TMP_GIT_CLONE}
    git clone $GIT_REPO $TMP_GIT_CLONE
    rm -rf ${PUBLIC_WWW}/*
    cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
    将文件权限改为755
    # chmod 755 /home/hexo/hexo.git/hooks/post-receive
    # chown hexo:hexo /home/hexo/hexo.git/hooks/post-receive

启动服务

  • 打开mac终端,进入hexo目录

    1
    2
    3
    $ cd
    $ cd Desktop/hexo
    $ hexo d -g 即可上传到你的云主机啦

打开云主机ip即可访问blog啦!!!!科科,终于打完了,累死了

感谢您的支持将鼓励我继续创作!