Hexo 建站经验

源起

一点小小的碎碎念。

搭建一个博客的想法其实很早就有了,也早就确定了要用 hexo,好像也没有特别的理由,最开始是被主题吸引住的(喂喂喂,关注点不对啊),后面也确实花了很多时间换这换那主题的,等到了24年真正决定要上线的时候,才顿悟过来,光顾着美观没有内容岂不是本末倒置,徒有其表了。所以基本也就不折腾了,选了一个好看的主题,慢慢开始充实内容。

Hexo 简介

博客框架很多,老实说,我都建好了好几个其他框架的目录,比如 WorldPresssolo 等,只是目前的想法还是先专心搞好 hexo,内容有了,换个框架也只是顺手的事。

选择 hexo 的理由如上面提到的:

  • 丰富的主题
  • markdown 编辑
  • 轻量

只需要在本地编辑好 Markdown 文档,就可以一步生成部署,非常方便。

Hexo 本地部署

  1. 安装 nodejs ,其实更建议安装 nvm,如果没有多版本使用的需求就没必要了;

  2. 安装 hexo 框架包

    npm install hexo-cli -g

     

  3. 初始化博客目录
    进入想要放置博客文件的目录,比如: C:\Projects\hexo ,右键打开 git bash 或 cmd

    # 初始化博客目录,指定博客目录名称,比如 hexo_blog
    
    hexo init <HEXO_DIR_NAME>
    cd <HEXO_DIR_NAME>
    
    # 安装依赖包
    
    npm install
     
  4. 查看默认页面
    完成以上安装后,执行

    hexo server

     

    打开 http://localhost:4000 就可以看到默认的页面了,剩下的工作就是找一个好看的主题创建自己的内容进行丰富了。

  5. 【补充】常用命令
    简要列举几个使用频率很高的命令,基本可以覆盖90%以上场景,其他使用不多的完整命令可以参考 官网说明

    # 新建文章
    
    hexo new <TITLE>
    
    
    # 清理缓存和生成的静态文件,每次部署前都要执行
    
    hexo clean
    
    
    # 生成静态文件
    
    hexo generate
    
    
    # 启动本地服务器,部署前的预览检查
    
    hexo server
    
    
    # 部署到配置的服务器,比如 github pages 或 云服务器
    
    hexo deploy

     

     

Hexo 部署到 Gitee Pages(不推荐)

添加公钥

注册登录 Gitee,在【安全设置】-【SSH公钥】添加即可。

如果没有的话,生成一个就行,参考SSH 免密登录

创建仓库

新建一个空仓库,名称随意,比如 hexo_blog

修改项目部署配置

修改 hexo 本身的配置 _config.yml 配置文件,不是主题配置哦!

找到 deploy 部分,参考:

deploy:
	
# 阿里云部署

  - type: git
   repo: git@hexo:/home/git/hexo
   branch: master
  
# Gitee 部署

  - type: git
   repo: https://gitee.com/<USERNAME>/hexo_blog.git
   branch: main

修改 repo 为创建的仓库地址,分支指定为 main 。

远程部署

配置好之后,执行:

hexo d

如果公钥、配置一切正常,执行后会要求输入 Gitee 登录凭据:

啊!忘了截屏!!(无论使用 vscode 还是 git bash 都会要求输入)

Hexo 建站经验

显示部署成功后刷新仓库就可以看到部署的静态资源了。

开启 Gitee Pages

Hexo 建站经验

Hexo 部署到 Github

待续

Hexo 部署到服务器

首先在本地完成部署。

服务器配置

  1. 安装 Git: yum install -y git ,如果安装了就可以跳过
  2. 创建 git 用户用于站点文件同步: useradd git ,可以不设置密码;
  3. 初始化 git 仓库:
    # 切换到 git 用户
    
    su git
    
    # 初始化仓库: 创建一个名称为 hexo.git 的裸仓库,如果看不习惯可以自己修改, --bare 选项用于创建一个裸仓库
    
    git init --bare ~/hexo.git
    
    # 创建钩子函数,用户同步之后将站点文件 copy 一份到站点目录
    
    cd ~/hexo.git/hooks/
    vim post-receive
    
    git --work-tree=/path/to/webroot --git-dir=/home/git/hexo.git checkout -f
    
    
    # 下面是我的配置,仅供参考
    
    git --work-tree=/data/blog --git-dir=/home/git/hexo checkout -f

📝 这里要提前把涉及到的目录创建好哦!

添加公钥

配置 git 用户的SSH 免密登录。

修改部署配置

修改 hexo 站点配置文件 _config.yml:

deploy:
- type: git
  repo: git@hexo:/home/git/hexo
  branch: master

远程部署

然后就可以部署到服务器了:

hexo deploy

如果失败了,注意看终端中的报错信息,挨个挨个解决,毕竟不能保证每个人都会遇到同样的问题。

Nginx 配置

修改 nginx 站点目录为以上设置的目录: /data/blog

server {
    listen              443 ssl;
    listen              [::]:443 ssl;
    http2 on;
    server_name         <DOMAIN_NAME>;
    root                /data/blog;

    
# SSL

    ssl_certificate     /data/nginx/ssl/fullchain.pem;
    ssl_certificate_key /data/nginx/ssl/key.pem;

    
# security

    include             nginxconfig.io/security.conf;

    
# logging

    access_log          /usr/local/openresty/nginx/logs/access_main.log combined buffer=512k flush=1m;
    error_log           /usr/local/openresty/nginx/logs/error_main.log info;

    
# additional config

    include             nginxconfig.io/general.conf;
}
 

关于 SSL 证书的申请前面站内另一篇有提及。

任何个人或组织,在未征得【发布者】同意时,禁止复制、盗用、采集、发布本站内容到任何网站。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索