从零到一搭建一个hexo博客

  1. 1. 准备
  2. 2. 环境搭建
    1. 2.1. Windows
    2. 2.2. CentOS
  3. 3. Link
  4. 4. Nginx
  5. 5. 其他

开个新坑,慢慢写

前言

以前用的blog一直是wordpress,配合着@moedog大佬的二次元主题,然后有段时间摸鱼,正好碰到了@Candinyadalao移植的hexo主题风格,想了想wp比较臃肿,于是就理所应当的过渡到了hexo上。

准备

一个RSA密钥对,一台centos服务器,ssl证书(可选)

环境搭建

Windows

  1. 首先前往Nodejs官网下载nodejs,安装。
  2. 接着前往Git官网下载git,安装。
  3. ~/.ssh/下面准备好的你的私钥,同时记下你的公钥
  4. (~~什么你还没有密钥对?~~那你可以通过
1
ssh-keygen -f fileName -t rsa

来生成你的密钥对
5. 通过

1
2
npm -v
node -v

来验证你的Nodejs是否安装成功
6. 接下来使用npm来安装hexo

1
npm install -g hexo-cli 

如果不出error,问题都不大
7. 初始化hexo博客

1
hexo init blogfoldername
  1. 使用如下命令来验证hexo雏形
1
2
hexo g
hexo s
  1. 如果没有问题你可以在127.0.0.1:4000看到初始的hexo博客

CentOS

  1. 安装并启动nginx
1
2
3
4
yum install nginx
systemctl enable nginx
systemctl start nginx
systemctl status nginx

这里就摸了
2. 新建用户设置密码(yuki为列示用户

1
2
useradd yuki
passwd yuki
  1. 把yuki用户添加到sudo用户组中
1
2
chmod 740 /etc/sudoers
vi /etc/sudoers

将yuki写入root下面

1
2
root ALL = (ALL) ALL
yuki ALL = (ALL) ALL

保存退出

1
chmod 400 /etc/sudoers

回退权限
4. 切换到yuki导入ssh公钥

1
2
3
4
5
6
su yuki
cd ~
mkdir .ssh
vim .ssh/authorized_keys#粘贴上你的密钥然后保存退出
sudo chmod 600 ~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh
  1. 安装git
1
yum install git
  1. 初始化仓库文件
1
2
3
su git
cd ~
git init --bare blog.git
  1. 建一个文件夹用于存放网页
1
2
cd ~
mkdir hexo
  1. 修改hook
1
2
3
4
vim ~/blog.git/hooks/post-receive
#写入以下内容并且保存退出
#!/bin/sh
git --work-tree=~/home/yuki/hexo --git-dir=/home/yuki/blog.git checkout -f
  1. 赋权
1
chmod +x ~/blog.git/hooks/post-receive

接下来来杯咖啡(误

Link

从windows上使用

1
ssh -T yuki@yourip

来测试git是否可用,如果出现类似于“welcome"的语句,证明配置成功
在Windows上进入hexo文件夹,找到_config.yml修改deploy

1
2
3
4
deploy:
type: git
repo: yuki@yourip:/home/yuki/blog.git
branch: master

PS:记得安装

1
npm install hexo-deployer-git --save

接下来你可以使用

1
hexo d

来推送的你的服务器,当然这个时候你还不能访问(nginx还没写

Nginx

这部分就摸了,有详细的看Nginx那篇文章吧
配好了Nginx后,你就可以访问你的blog了

其他

为了安全考虑,禁用yuki用户的SHELL 登录权限配置
这样yuki用户就只能用来执行脚本,无法切换到shell界面。
首先你必须确保 git-shell 已存在于 /etc/shells 文件中
使用命令

1
which git-shell

判断系统是否安装了git-shell。如果已经安装,则返回git-shell的安装目录,如:/usr/bin/git-shell;如果未安装则需要安装git-shell命令,安装命令:

1
yum install git

判断shells文件是否存在,判断命令:

1
cat /etc/shells

如果文件不存在或没有/usr/bin/git-shell,则需要使用vim增加这个路径:

1
sudo vim /etc/shells

,在最后一行添加git-shell路径

1
2
3
4
5
6
7
8
# /etc/shells: valid login shells 
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/usr/bin/git-shell # 添加你的git-shell

现在你可以使用 chsh 命令修改任一系统用户的shell权限了
现在我们修改创建的yuki用户的登录权限,禁止yuki用户使用shell权限:
终端中输入

1
sudo chsh yuki

然后在Login Shell [/bin/bash]: 后输入git-shell路径/usr/bin/git-shell
修改完成后验证: vim /etc/passwd找到类似git:x:1000:1000:,,,:/home/yuki:/usr/bin/git-shell,看看yuki用户是否是以git-shell结尾
这样,yuki用户就只能使用SSH连接对Git仓库进行推送和拉取操作,而不能登录机器并取得普通shell命令