0%

搭建Hexo博客

本地环境

1
2
3
4
5
6
$ node -v
v12.10.0
$ npm -v
6.14.1
$ git --version
git version 2.23.0

安装Hexo

npm install -g hexo-cli

博客初始化

首先cd到你要存你的博客的路径,我是cd到~/blog,然后 hexo init

部署到服务器

服务器系统: centos7(如果是debian或者ubuntu,只需将下面的yum改成apt即可)

1
2
3
4
5
6
7
8
# 在服务器端安装git
yum install git
# 在服务器端创建工作文件夹、裸仓库
mkdir /home/git
mkdir /home/git/hexoblog
git init --bare /home/git/hexo.git
# 新建钩子文件
vim /home/git/hexo.git/hooks/post-receive

把下面的代码放进去

1
2
#!/bin/bash
git --work-tree=/home/git/hexoblog --git-dir=/home/git/hexo.git checkout -f

然后保存并退出

1
2
3
4
5
6
7
# 为文件添加执行权限
chmod +x /home/git/hexo.git/hooks/post-receive
# 安装nginx并启动
yum install -y nginx
systemctl start nginx
# 修改配置文件 debian用:vim /etc/nginx/sites-enabled/default
vim /etc/nginx/nginx.conf

接着修改下面两个信息

1
2
3
4
server{
root /home/git/hexoblog; # 即存放静态文件的目录
server_name blog.pyai.top; # 你的域名,需要解析到你服务器的公网ip
}

最后重启 nginx 服务器

1
systemctl restart nginx

在自己本地的 Hexo 配置文件中修改如下:

1
2
3
4
deploy:
- type: git
repo: root@服务器IP:/home/git/hexo.git
branch: master

然后在博客根目录运行 npm install hexo-deployer-git --save
把博客发送到服务器 hexo g && hexo d,此时在浏览器输入域名就可以看到博客了。

为网站添加HTTPS安全证书

1
2
sudo yum install certbot python-certbot-nginx
sudo certbot --nginx

之后输入邮箱、需要部署的域名、部署方式,看到Congratulations就已经部署成功了。
再回到nginx的配置文件中把信息更新一下即可访问。
由于Let的加密证书有效期是90天,之后就会过期,需要重新再做一次上面的操作,Certbot提供了一个自动续期的功能,只需:

1
sudo certbot renew --dry-run

小技巧

  • hexo g && hexo d可以简化为hexo d -g
  • 新建文章是hexo new "标题"
  • 如果你本地hexo s后显示的和网页上的不一致可以做下面的尝试:
    1. 清除一下浏览器的缓存。
    2. hexo clean一下,然后重新hexo d -g
开启本地搜索功能
1
npm install hexo-generator-search --save

站点配置文件 添加以下内容:

1
2
3
4
5
6
# Search 
search:
path: ./public/search.xml
field: post
format: html
limit: 10000

主题配置文件 找到 local_search 并修改成下面的:

1
2
3
4
local_search:
enable: true
trigger: auto
top_n_per_article: 1

添加又拍云联盟 2019-10-12

logo添加是参考的 https://leotian.cn/ 的。

修改目录:themes/next/layout/_partials/ 下的 footer.swig 文件,增加:

1
2
3
4
5
6
7
8
<p>Hosted by
<a href="https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral" style="border:0">
<img
src="/images/upyun_logo.min.svg"
style="width: 60px; display: inline; vertical-align: middle;"
/>
</a>
</p>

插件集合

1
2
3
4
5
6
本地搜索 npm install hexo-generator-search --save
百度自动提交 npm i hexo-baidu-url-submit
部署 npm install hexo-deployer-git --save
站点地图 npm install hexo-generator-sitemap --save
baidu站点地图 npm install hexo-generator-baidu-sitemap --save
npm i hexo-filter-nofollow --save

加入谷歌广告

/themes/next/layout/_partials/comments.swig文件添加广告代码。

如果对您有帮助,请我喝杯奶茶?