hexo是一个无后端的博客系统, 不像wordpress,typecho可以直接线上编写文章, 需要在本地编写md文件, 然后编译成html上传到服务器, 整个过程还是比较繁琐, 所以, 想寻找hexo写作流的最佳方案
本地Hexo环境搭建
安装必要软件
安装Git
从Git官网下载并安装Git:https://git-scm.com/安装Node.js
从Node.js官网下载并安装:https://nodejs.org/
安装后验证:1
2node -v
npm -v
安装和初始化Hexo
安装Hexo CLI
1
npm install -g hexo-cli
初始化Hexo项目
1
2
3hexo init myblog
cd myblog
npm install本地测试
1
hexo server
访问
http://localhost:4000查看博客效果。
项目结构说明
1 | myblog/ |
服务器环境配置(无apt工具)
由于你的服务器没有apt工具,推测可能是CentOS/RHEL系系统,使用yum包管理器。
安装必要软件
安装Node.js
1
2
3
4# 添加NodeSource仓库(以Node.js 14.x为例)
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
# 安装Node.js
sudo yum install -y nodejs安装Git
1
sudo yum install -y git
安装Nginx
1
sudo yum install -y nginx
配置服务器Git仓库
创建Git用户和仓库
1
2
3
4
5
6
7sudo useradd git
sudo passwd git # 设置密码
su - git
mkdir -p ~/blog.git
cd ~/blog.git
git init --bare创建网站根目录
1
2
3sudo mkdir -p /var/www/hexo
sudo chown git:git /var/www/hexo
sudo chmod 755 /var/www/hexo配置Git钩子
在/home/git/blog.git/hooks/目录创建post-receive文件: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
28
29
30
31
32
33
34
35
36
37
38
39
40
41# 切换到git用户
su - git
# 进入hooks目录
cd /home/git/blog.git/hooks
# 创建post-receive文件
cat > post-receive << 'EOF'
#!/bin/bash
echo "开始部署Hexo博客..."
# 设置路径
GIT_DIR=/home/git/blog.git
WORK_TREE=/var/www/hexo
# 创建网站目录(如果不存在)
mkdir -p $WORK_TREE
# 检出文件到网站目录
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "$branch" = "master" ]; then
echo "正在部署master分支到网站目录..."
git --work-tree=$WORK_TREE --git-dir=$GIT_DIR checkout -f $branch
# 检查是否部署成功
if [ $? -eq 0 ]; then
echo "✅ 博客部署成功!"
echo "网站文件已更新到: $WORK_TREE"
# 显示部署的文件列表
echo "部署的文件:"
ls -la $WORK_TREE/ | head -10
else
echo "❌ 部署失败!"
exit 1
fi
fi
done
EOF赋予执行权限:
1
2
3
4
5
6
7
8
9
10
11
12
13
14chmod +x /home/git/blog.git/hooks/post-receive
# 将钩子文件的所有者改为git用户
sudo chown git:git /home/git/blog.git/hooks/post-receive
# 检查修正后的权限
ls -la /home/git/blog.git/hooks/post-receive
# 将整个blog.git目录的所有权交给git用户
sudo chown -R git:git /home/git/blog.git
# 修复网站目录权限
sudo chown -R git:git /var/www/hexo
sudo chmod -R 755 /var/www/hexo配置Nginx
编辑/etc/nginx/nginx.conf或/etc/nginx/conf.d/hexo.conf:1
2
3
4
5
6
7
8
9
10server {
listen 80;
server_name your-domain.com; # 替换为你的域名或IP
root /var/www/hexo;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}重启Nginx:
1
2sudo systemctl start nginx
sudo systemctl enable nginx
配置Hexo多平台部署
配置GitHub Pages仓库
创建GitHub仓库
- 仓库名格式:
用户名.github.io - 设置为public仓库
- 仓库名格式:
配置SSH密钥
1
ssh-keygen -t rsa -C "your-email@example.com"
将公钥
id_rsa.pub内容添加到GitHub的SSH keys中。
配置Hexo部署设置
修改Hexo项目中的 _config.yml 文件:
1 | # 部署配置[citation:6] |
这里注意,
github上的主分支可能是main, 可以直接在配置文件修改, 也可以部署好后进入github settings中修改主分支, 网上资料也比较多
安装部署插件
1 | npm install hexo-deployer-git --save |
完整的写作和部署流程
日常写作流程
创建新文章
1
hexo new "文章标题"
编辑文章
在source/_posts/目录下找到对应的Markdown文件进行编辑。本地预览
1
hexo clean && hexo generate && hexo server
部署到双平台
1
hexo clean && hexo generate && hexo deploy
访问
直接访问 用户名.github.io 或者自己的域名都可以访问博客