hexo快速入门
2024年5月17日大约 4 分钟
- nodejs:用来安装 hexo
- hexo:用来写博客
- git:用来推送博客到 github 或者云服务器上
首先安装 nodejs
去 NodeJs 官网下载最新的 LST 版本:https://nodejs.org/en/,下载解压之后,把 nodejs 的 bin 目录添加到环境变量,这样就可以使用 npm 命令了。
# 设置npm镜像源为淘宝源,保证下载速度
npm config set registry https://registry.npmmirror.com
# 安装hexo
npm install hexo-cli -g
安装完成之后,就可以使用 hexo 来写博客了
开始写博客
- 初始化博客
# 新建一个文件夹blog,作为博客目录
mkdir blog
# 进入blog文件夹
cd blog
# 使用init命令之后,就会在blog目录下自动生成一堆配置文件
hexo init blog
- 新建一篇文章
在source/_posts
目录下,新建一个 markdown 文件,就是一篇博客,也可以用命令来新建 markdown 文件,这样会自动生成一些配置,不然自己写也无所谓。
hexo new "My New Post"
- 预览博客效果
# 1.生成静态网页
hexo g
# 2.开启本地服务
hexo s
# 访问http://localhost:4000
更换博客主题
刚才生成的博客是默认的主题,你可以修改成自己觉得好看的主题。
- 可以在hexo官网查看自己喜欢的主题
- 通过
git clone URL
将主题克隆到本地,把主题文件放到themes
文件夹下。 - 修改
blog/_config.yml
中的theme:xxx
,xxx 改成 themes 文件夹下的主题名字
4.发布博客到云服务器
服务器端的操作
1.安装 git、nginx
sudo apt install nginx git -y
2.添加一个 git 用户
useradd git
passwd git
# 给git用户配置sudo权限
chmod 740 /etc/sudoers
vim /etc/sudoers
# 找到root ALL=(ALL) ALL,在它下方加入一行
git ALL=(ALL) ALL
chmod 400 /etc/sudoers
3.在服务器上创建 git 仓库,并使用 git-hooks 实现自动部署
# 新建git仓库保存的目录
sudo mkdir -p /var/repo
# 初始化一个git仓库
cd /var/repo
sudo git init --bare blog.git #创建一个名叫blog的仓库,其实就是一个远程仓库
# 新建网站数据存放的目录
sudo mkdir pp /var/www/hexo
- 修改 post-update 文件
sudo vim /var/repo/blog.git/hooks/post-update
修改内容如下:
#!/bin/bash
# --work-tree=这里指定网站的根目录
# --git-dit=这里指定git仓库目录
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
这样修改之后,只要你用 git 推送到blog.git
远程仓库,就会触发 post-update,执行的动作就是把这个仓库的内容复制到网站的根目录的,从而达到自动更新的目。
在使用命令
hexo deploy
时,其实是把 public 文件夹推送到blog.git
这个远程仓库。
配置 nginx
cd /etc/nginx/conf.d/
vim blog.conf
blog.conf
内容修改如下
server {
listen 80 default_server;
listen [::] default_server;
server_name 你的域名;
root 网站根目录的绝对路径
}
检查 Nginx 语法并重载 nginx:
# 检查
nginx -t
# 重载
nginx -s reload
客户端的操作
a.安装 git 推送插件
不安装插件,会推送不出去。
npm install hexo-deployer-git --save
b.配置 Hexo
即设置你要推送到的远端地址。
修改blog/_config.yml
deploy:
type: git # git方式推送
repo: git@github.com:xxx/xxx.github.io.git # 格式: 用户名@服务器地址(或者域名):git仓库的绝对路径
branch: master # 默认是master分支
c.配置 ssh 免密登录(可选,推荐)
给客户端配置免密登录,是为了推送的时候不用每次都输入密码。如果不嫌麻烦,可以跳过这一步,推送的时候手动输入密码就行
# 一下步骤在,在客户端上操作,先生成公钥
ssh-keygen -t rsa
# 把公钥复制到服务器上
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器地址
# 验证,用ssh连接,如果不需要输入密码说明配置免密登录成功
d.推送服务器
hexo d # 输入这个命令,就可以把当前生成的博客文件推送到远程仓库了,主要是把public目录推送出去
其它
域名绑定
在source
文件夹下新建名字叫CNAME
的文件,无任何后缀,在里面写上你购买的域名,即可。
常用命令
hexo g && hexo d # 生成博客页面,然后推送到远程仓库
hexo clean && hexo g && hexo s # 清理之前生成的文件,重新生成新文件,开启本地预览服务
hexo clean && hexo g && hexo d # 清理之前生成的文件,重新生成新文件,推送到远程服务器