前言
以前没啥写笔记的习惯,最近看了不少刷到不少关于博客的视频,也就有了要开始写笔记的想法,虽然有不少可以写笔记博客的平台,但是作为程序员我还是觉得得有自己的博客网站,用别人的平台写博客限制太多,从零自己开发一个博客,工作量太大,开发完写作的热情都没了。多方考察后选择了hexo。
选择hexo主要有以下几点:
- 技术栈合适,
hexo基于node的博客框架,环境只需要Node和Git,刚好我作为前端经常用到,使用它上手更快 - 有良好的外观,对
markdown语法的完美支持 - 静态博客,维护简单,支持一键部署,本地编辑完后通过命令行就可以实现发布 配合git就可以时间笔记的云端备份
下面介绍一下我安装的过程以及踩坑
1本地博客环境搭建
本文章需要有一定的基础,了解git的使用及npm的使用 .
环境准备
本地需要安装两个软件:一个是Node.js,另一个是 Git. ,这两个安装就不介绍了,不懂的另外搜索一下教程,这边只介绍如何安装hexo。
首先先全局安装一下hexo
npm install -g hexo-cli
hexo 使用及配置
首先选择一个空目录初始化(init) 一下hexo项目
$ hexo init
$ cd
$ npm install
运行hexo
hexo server
或者你更熟悉npm命令可以使用
npm run server

浏览器打开控制台输出的网址看到如下结构就证明成功了在浏览器输入地址:http://localhost:4000/就可以看到你写的博客了。

打开根目录下的source/_posts/文件夹会看到hello-world.md`的文件 修改它就可以实时的在本地预览了
打开根目录下的_config.yml`对下面这些代码进行配置个性化网站信息。
title: '你的网站标题'
subtitle: '副标题'
description: '简介'
keywords: '关键字'
author: 作者
language: en #语言 zh-CN为简体中文
timezone: '时区'
更多使用可以查看官方文档hexo
主题美化
基础主题太丑,一般都会使用主题来美化界面 自行选择一个自己喜欢的主题来美化你的博客,当然你也可以不用折腾 用原主题也可以,毕竟博客还是以内容为主。这里我使用的是hexo-theme-matery
使用方式可以查看Hexo博客主题之hexo-theme-matery的介绍
博客部署
部署的话 hexo大概分为两种 一种是无需服务器使用GithubPage(码云gutee也支持) 这种适合没有服务器的,没有linux基础的,不过有一定的限制,如不支持自定义域名。我是的是部署到自己的服务器,所以下面只介绍怎么部署到服务器。
本次使用后的方案是在服务器安装一个git裸库,本地用插件git上传后通过git hooks出发脚本实现自动部署,使用Nginx做服务代理
准备工作
- 在服务器上安装git 和Nginx
- 注意开放相关端口
设置Nginx
如果没有安装先安装
yum install -y nginx //安装nginx
systemctl start nginx.service //启动Nginx服务
我们再来设置Nginx,当然你也可以用其他的服务器软件,不过我还是很喜欢Nginx的就使用了。
先创建网站跟目录,我这里放在\www\hexo下了。
mkdir /www/hexo
chown git:git -R /www/hexo //授予权限
启动后修改nginx.conf配置文件。
vim /etc/nginx/nginx.conf
修改项 配置root路径到你的文件夹路径
server {
...
root /www/hexo;
保存后,重启nginx服务器,
systemctl start nginx.service //重启启动Nginx服务
创建git仓库
创建仓库前我们先创建一个用于专门负责git的linux用户,当然你也可以直接用root用户
useradd git //创建用户git
passwd git // 设置密码
设置一下git用户的权限
chmod 740 /etc/sudoers // 设置权限
vim /etc/sudoers // 修改root权限

创建好了就可以创建git仓库了
su root //切换到root用户
cd /home/git //切换到你要git库创建的文件夹下
git init --bare blog.git //创建Git仓库
chown git:git -R blog.git //授予Git仓库权限
git仓库创建好了,我们就可以配置githook脚本来实现自动同步了
cd blog.git/hooks/
mkdir post-receive //创建post-receive文件
把下面的内容拷贝进post-receive 去, 根据你自己的配置该一下路径
#!/bin/sh
git --work-tree=/wwww/hexo --git-dir=/home/git/blog.git checkout -f
//部分配置后Nginx无读取权限加上下面这句
chmod -R 750 /www/wwwroot/blog
再次修改权限,
chmod +x post-receive
这样就已经把服务器端的环境基本配置好了。
把博客上传到云服务器
博客上传到服务器需要上传公钥,创建密钥。创建密钥的命令是 ssh-keygen -t rsa 如果你已经有了密钥就不用再次创建了,特别是公司已经有很多git管理的项目时,否则需要都进行重新配置。
我这里是已经有密钥了。 到服务端创建一个存放密钥的文件夹。
su git //切换到git用户
mkdir ~/.ssh //创建存放密钥的文件夹
vim ~/.ssh/authorized_keys //vim写入密钥
来到自己的客户端,找到C:\Users\Administrator\.ssh 打开id_rsa文件,直接复制全部,就可以完成了。 这样我们就可以通过git这个用户向服务器提交代码了,我们要测试一下,看看是否配置的可以连接上 本地测打开本地主机的powerShell,然后用ssh进行连接。,初次链接需要手动确认一次,
ssh -v git@xxx.xx.xxx.xx //服务器ip
还需要安装一下hexo-deployer-git 插件 如果不是全局安装请先cd到项目目录
npm install --save hexo-deployer-git
修改本地的hexo配置文件_config.yml,打开文件后,拖动到最后边,输入下面的配置,根据自己的情况修改
eploy:
type: git
repository: git@xxx.xx.xxx.xx:/www/git/blog.git
branch: master
安装完成后,输入下面的命令
hexo clean //清楚缓存
hexo g -d //上传到服务器
如果一切正常,就可以直接传到服务器上,然后输入网址180.76.183.66就可以完成博客的浏览了,我这里没有使用域名,如果你有域名,只要把域名解析到这个网址就可以了。
补充
-
如果不想让git用户ssh登录请参考禁止git用户ssh登录的两种方法
-
每次上传都要上传前都要先clean ,你也可以和配置一下自定义命令

这样每次只需要 npm run push 就可以了