Hexo个人网站搭建

本机配置

官网下载Node.js,换成淘宝源:

1
2
3
4
5
6
7
8
# 换成淘宝源(可能需要sudo su进入root模式):
npm install -g cnpm --registry==https://registry.npm.taobao.org
cnpm -v
cnpm install -g hexo-cli
mkdir Hexo && cd Hexo
hexo init
hexo s
# 此时可在http://localhost:4000/访问主页

服务器与域名配置

  • 阿里云ECS轻量应用服务器2核2G¥108/年;买域名、ICP备案
  • 选择CentOS系统镜像,设置密码;
  • 创建新用户并设置ssh免密登录[原理链接],方便后续hexo部署:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers
# 在root ALL=(ALL) ALL下添加:
git ALL=(ALL) ALL
chmod 400 /etc/sudoers
sudo passwd git

su git
cd ~
mkdir .ssh

# 检查本地~/.ssh下是否已有公钥,若没有:
ssh-keygen
# 在服务器git用户~/.ssh下生成authorized_key
ssh-copy-id user@host

服务器nginx配置

  • RedHat系(RedHat、CentOS、Fedora等)包管理工具为rpm,依赖管理工具为yum,Debian系(Debian、Ubuntu等)包管理工具为dpkg,依赖管理工具为apt。
  • 安装nginx依赖环境,下载解压nginx安装包:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 确认此时在root用户下:
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
tar -xvf nginx-1.10.1.tar.gz -C /usr/local
cd /usr/local/nginx-1.10.1
./configure
make
make install

# 若Make报错:
vim ./objs/Makefile
# 删除CFLAGS中的-Werror:
CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused -g
vim ./src/os/unix/ngx_user.c
# 注释掉此行:
cd.current_salt[0] = ~salt[0];
  • 安装、配置nginx:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 确认此时在root用户下:
cd /usr/local/nginx/sbin
./nginx
# 此时可用host:80访问nginx欢迎页
# 可用./nginx -s stop停止服务
# 若服务器不开放80端口:
/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT

mkdir -p /home/www/hexo
cd /usr/local/nginx/conf
vim nginx.conf
# 将其中的部署根目录/的location的root修改为/home/www/hexo
# 将server_name修改为域名,若没有域名则改为公网ip

cd ~
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
node -v
npm -v
yum install git
git --version

服务器Hexo配置

配置git仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 确认此时在git用户下:
cd ~
git init --bare hexo.git
vim ~/hexo.git/hooks/post-receive
# 写入:git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f
chmod +x ~/hexo.git/hooks/post-receive
cd ~
sudo chmod -R 777 /home/www/hexo

# 回到本地对应Hexo目录:
cd ~/Documents/Hexo
sudo vim _config.yml
# 将url改成https://{服务器IP}/
# 修改末尾deploy部分:
deploy:
type: git
repo: git@ip:/home/git/hexo.git
branch: master

npm install hexo-deployer-git --save
npm install hexo-server

# 若首次使用git:
git config --global user.name "your-username"
git config --global user.email "your-email-address"

hexo clean && hexo g -d

NeXT主题配置

1
2
3
4
5
6
7
8
9
10
11
# 更换主题:https://hexo.io/themes/
git clone --depth=1 https://github.com/theme-next/hexo-theme-next.git themes/next
# 将_config.yml中themes改为next

hexo n "name.md"
hexo clean && hexo g -d
# 在Hexo和themes下各有一个_config.yml,在此自定义
# markdown中插入图片:
# 将Hexo根目录下_config.yml文件中post_asset_folder设为true,即可使用相对路径引用图片:
# 注意:.开头的隐藏文件不会被保留
![](image.jpg)

配置教程另一篇另一篇

  • 删除文章:删除对应.md和文件夹,以及Hexo根目录下.deploy_git即可。

  • \(\LaTeX\)支持:知乎

  • 添加置顶:

1
2
npm uninstall hexo-generator-index --save
npm instal hexo-generator-index-pin-top --save

在置顶文章的Front-matter中加上top: true即可。