本地环境

安装 Git

  • Windows:下载并安装 git. 默认安装,安装完成之后,node -v查看版本号
  • Mac:自己想办法,哈哈哈.

安装 Node.js

  • Node.js 为大多数平台提供了官方的 安装程序
  • 或者可通过 nvs 或者 nvm 来安装。

安装 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

1
npm install -g hexo-cli

安装完成后, hexo version 查看版本号

init

1
hexo init [folder]

如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。

server

1
hexo server

启动服务器。默认情况下,访问网址为: http://localhost:4000/

hexo默认页面

git 上传插件

1
npm install hexo-deployer-git --save  

生产公钥和私钥

执行如下命令:

1
2
3
git config --global user.name "你的用户名"  
git config --global user.email 你的邮箱
ssh-keygen -t rsa -C "你的邮箱"

.ssh文件
id_rsa 是私钥文件
id_rsa.pub 是公钥文件
known_hosts 这个是本地ssh链接服务器生成的。

服务器环境

搭建git环境

xshell进入后台,安装git

1
2
yum install git  
git --version //查看 git 版本

创建一个git用户,然后按照以下步骤进行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
adduser git //添加git用户
passwd git // 设置git密码
su git // 切换用户
cd /home/git/ //进入git目录
mkdir hexo // 创建文件来放置hexo静态工程
mkdir repos && cd repos //创建文件放置git仓库
git init --bare blog.git // 创建一个裸露的仓库
cd blog.git/hooks //进入钩子目录
vi post-receive //创建hook钩子函数(git提交时自动部署)
hook钩子函数内容: (按一下i字母键输入,输入完后,先按Esc键,再输入:wq代表保存退出,:q是退出不保存)
#!/bin/sh
git --work-tree=/home/git/hexo --git-dir=/home/git/repos/blog.git checkout -f
//修改权限
chmod +x post-receive
exit // 退出到 root 登录
chown -R git:git /home/git/repos/blog.git // 添加权限

到这里服务器git环境搭建完成,测试下能否可能服务器的目录到本地:
随便打开一个文件夹,输入以下命令:

1
git clone git@你的服务器IP地址:/home/git/repos/blog.git  

成功后本地文件夹会新增一个 .git 文件

.git文件

建立ssh免密登录

1
2
3
4
5
6
7
8
su git     //切换git用户
cd /home/git //进入git目录
mkdir .ssh //创建免密公匙目录
cd /home/git/.ssh //注意是用git用户进这个目录,不是root
touch authorized_keys //存放客户端的ssh公钥(id_rsa.pub)
chmod 600 authorized_keys //配置权限
cd .. //退出.ssh目录
chmod 700 .ssh //.ssh目录必须700权限

复制本地公钥 id_rsa.pub 文件 内的内容,
远程连接服务器打开新创建的 authorized_keys 文件 黏贴进去。
然后本地测试下能否本地免密登录,首次联系会提示你输入yes,然后输入密码

1
ssh git@你的服务器IP地址

提示 welcome to Alibaba Cloud Elastic Compute Service ! 内容,至此免密成功!

宝塔面板安装

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

阿里云ECS无法打开面板的解决方法—阿里云安全组放行教程
进入到阿里云控制台 放行8888端口才能访问到面板

添加网站

网站 → 添加网站,填写已备案域名,根目录选/home/git/hexo(按教程配置的目录)。

添加网站

Hexo 配置 _config.yml 文件

1
2
3
4
5
6
7
deploy:
type: git
repo:
github: git@github.com:你的github仓库地址
aliyun: git@你的服务器IP:/home/git/repos/blog.git
branch: master
message:

clean

1
hexo clean

清除缓存文件 (db.json) 和已生成的静态文件 (public)。
在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。

generate

1
2
hexo generate  //该命令可以简写为
hexo g

生成静态文件。

deploy

1
2
hexo deploy  //该命令可以简写为
hexo d

部署网站。

文章自定义生成永久链接

使用官方插件 hexo-abbrlink 生成静态链接

安装插件

1
npm install hexo-abbrlink --save
1
2
3
4
permalink: posts/:abbrlink/
abbrlink:
alg: crc16 //算法:crc16(default) and crc32
rep: hex //进制:dec(default) and hex

两种算法,四种模式

1
2
3
4
5
6
7
8
9
10
11
12
alg -- Algorithm (currently support crc16 and crc32, which crc16 is default)
rep -- Represent (the generated link could be presented in hex or dec value)

# 4种模式下,生成的链接如下
crc16 & hex
https://haoop.com/posts/66c8.html
crc16 & dec
https://haoop.com/posts/65535.html
crc32 & hex
https://haoop.com/posts/8ddf18fb.html
crc32 & dec
https://haoop.com/posts/1690090958.html

模板文件修改

搜索文件夹scaffolds,修改模板文件post.md内容

1
2
3
4
5
title: {{ title }}
date: {{ date }}
comments: true
categories:
tags:

category_map–中文、英文映射

解决 Hexo 分类、标签中文名称乱码问题
在 Hexo 的 _configy.yml 文件中,通过 category_map 把中文映射为英文

1
2
3
4
5
6
7
8
# Category & Tag
default_category: uncategorized
category_map: # 分类名称中文映射成英文
学习: study
Hexo: hexo
tag_map: # 标签名称中文映射成英文
Vue: vue
教程: course

Nginx 出现 403 Forbidden 最终解决

目录权限不足的问题

1
chmod -R 755 "你的文件目录"

favicon.ico图标不显示

把favicon.ico文件放置在主题的source文件下即可