Demo Blog
Demo Blog
Halyul
I'm your slogan!
失踪人口回归系列之在VPS上搭建HEXO的GIT部署环境
Posted: Mar 22, 2017
Last Modified: Nov 25, 2017
  • Article QR Code
This article was last modified days ago. The content of this post may be outdated!

失踪人口回归系列之第一篇

写在开头

由于HEXO是静态博客,越来越多的人选择在GitHub, Coding等Pages服务提供商处搭建自己的博客,从而省下买网页空间或VPS的钱。

然而有部分人会选择在VPS上使用HEXO,但是却发现远不如使用Pages服务方便,但看完这篇文章,你就会发现,这并没有想象中那么方便难。

准备工作

  • 一台电脑
  • 一台VPS
  • 一个打开本页面的浏览器

本地环境

现在本地上安装Node.js和git

请访问Installing Node.js via package manager,安装你系统的对应版本。

安装Hexo

$ npm i -g hexo-cli

如果你有cnpm, 只需要将npm替换成cnpm

创建Hexo

$ mkdir /path/to/hexo
$ cd /path/to/hexo
$ hexo init
$ hexo s

其中/path/to/hexo为你想要存放Hexo数据的地方

如果hexo init过程中安装终端,请执行

$ cd /path/to/hexo
$ npm i

打开localhost:4000, 如若看见Hexo初始页面则Hexo安装成功。

生成SSH公钥密钥

由于我曾经进过此步发现并没有什么用,故而以下内容皆为引用自Viosey。 经实测此步可忽略,区别在于hexo d过程是否需要输入密码。

$ cd ~/.ssh
$ ssh-keygen

它先要求你确认保存公钥的位置(.ssh/id_rsa),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。

GitHub Help - Generating a new SSH key and adding it to the ssh-agent

服务器环境

安装Git & Node.js

Ubuntu
$ apt-get install git
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ apt-get install -y nodejs

此为 Node.js v6

若想安装其他版本,请更改为
Node.js v7

$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
CentOS
$ curl -sL https://rpm.nodesource.com/setup | bash -
$ yum install -y nodejs

此为 Node.js 0.10

若想安装其他版本,请更改为
Node.js v7

$ curl --silent --location https://rpm.nodesource.com/setup_7.x | bash -

Node.js v6 LTS

$ curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

创建 git 用户 & 禁用 git 用户的 shell 登录权限

$ adduser git
$ vim /etc/passwd

git:x:1001:1001:,,,:/home/git:/bin/bash

改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

添加证书登录

已生成公钥

.pub公钥里的内容添加到服务器的/home/git/.ssh/authorized_keys文件中

未生成公钥

请执行在服务器端执行

$ passwd git

更改git的密码。

建立git仓库

$ mkdir /path/to/repo
$ cd /path/to/repo
$ git init --bare hexo.git

目录可自行选择。
eg.

$ mkdir /home/git/repos
$ cd /home/git/repos
$ git init --bare hexo.git

然后在/home/git/repos下会有一个hexo.git的文件夹

使用 –bare 参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。

配置git hooks

hexo.git/hooks目录下,执行

$ cd /path/to/hexo.git/hooks
$ nano post-receive

你可以选择自己熟手的编辑器新建这个post-receive

post-receive中写入如下内容:

#!/bin/sh
git --work-tree=/path/to/your/site --git-dir=/path/to/hexo.git checkout -f

其中/path/to/your/site为你的站点文件夹,/path/to/hexo.git为你所建立hexo.git的完整路径

eg.

#!/bin/sh
git --work-tree=/var/www/blog.halyul.com --git-dir=/home/git/repos/hexo.git checkout -f

设置post-receive的可执行权限

$ chmod +x post-receive

设置目录拥有者

$ chown -hR git:git /path/to/hexo.git
$ chown -hR git:git /path/to/your/site

本地Hexo配置

先安装hexo-deployer-git以执行hexo的git部署

$ npm i --save hexo-deployer-git

打开hexo目录下的_config.yml,找到deploy进行修改

deploy:
    type: git
    repo: [email protected]:hexo.git
    branch: master

其中example.com为你的站点地址或IP

开始使用

当你需要生成以及部署hexo时,运行

$ hexo clean && hexo d

大功告成~

参考

在 VPS 上搭建 Hexo 博客,使用 Git 部署

Article License: CC BY-NC-SA 4.0
Article Permalink: https://halyul.github.io/posts/vps-hexo/
Article Markdown: https://halyul.github.io/posts/vps-hexo/vps-hexo.md
  1. 1. 写在开头
  2. 2. 准备工作
    1. 2.1. 本地环境
      1. 2.1.1. 现在本地上安装Node.js和git
      2. 2.1.2. 安装Hexo
      3. 2.1.3. 创建Hexo
      4. 2.1.4. 生成SSH公钥密钥
    2. 2.2. 服务器环境
      1. 2.2.1. 安装Git & Node.js
        1. 2.2.1.1. Ubuntu
        2. 2.2.1.2. CentOS
      2. 2.2.2. 创建 git 用户 & 禁用 git 用户的 shell 登录权限
      3. 2.2.3. 添加证书登录
        1. 2.2.3.1. 已生成公钥
        2. 2.2.3.2. 未生成公钥
      4. 2.2.4. 建立git仓库
      5. 2.2.5. 配置git hooks
      6. 2.2.6. 设置目录拥有者
  3. 3. 本地Hexo配置
  4. 4. 开始使用
  5. 5. 参考
Newer Post
失踪人口回归系列之增强站点SSL安全性
Older Post
实现主站静态主题更换后,Android手机状态栏随同变色功能
Buy me a beer?
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×