关于网站

关于网站
小楼夜听雨启
本网站于2024年5月4日开始使用
主要用于记录学习笔记,想法,项目和生活
使用安知鱼主题
于2025年1月4日将域名解析回阿里云购买的域名yzf522.cn
并完成导航栏各个组件的功能
域名yzf522.github.io已经完成了他的使命
访客量和访问量将不进行同步到yzf522.cn
文章上传
1 | hexo new 文章标题 |
文章是.md格式,在Blog文件夹中的source/_posts中
1 | hexo g |
git bash生成(g)、上传(d)
1 | hexo clean && hexo generate && hexo deploy |
本地启动 hexo
1 | hexo cl |
从github部署到服务器
前置条件确认
- 阿里云 CentOS 服务器已购买,公网 IP 已记录,安全组开放端口:
22(SSH)、80(HTTP)、443(HTTPS)、8888(宝塔面板) - 域名已完成 ICP 备案,且解析记录已修改为指向服务器公网 IP(A 记录
@和www) - 本地已安装 Git,博客代码托管在 GitHub,且能正常拉取 / 推送
- 原 Vercel 绑定的域名已解绑(Vercel 控制台删除域名关联,避免解析冲突)
1.宝塔终端命令安装Git 客户端(CentOS 系统)
1 | yum install -y git |
(如果是 Ubuntu 系统,替换为 apt install -y git)
验证安装成功:执行 git --version,若输出版本号(如 git version 2.39.1)则完成。
2.搜索安装 Node.js和Nginx
1 | # 安装 Node.js 16.x 版本 |
3.服务器端:创建网站 + 配置 HTTPS
添加站点
- 宝塔左侧 网站 > 添加站点
- 填写信息:
- 域名:输入你的域名(如
yourdomain.com) - 根目录:默认
/www/wwwroot/yourdomain.com - PHP 版本:选择
纯静态
- 域名:输入你的域名(如
- 点击 提交,系统自动生成 Nginx 配置
配置 HTTPS 证书
步骤 1:宝塔终端创建验证目录
1 | # 进入站点根目录 |
步骤 2:修改 Nginx 配置放行验证请求
宝塔→网站→
yzf522.cn→「配置文件」(Nginx 配置);在
server { listen 80; ... }块内,**location /上方** 添加:1
2
3
4
5
6# 放行SSL验证请求(核心:避免后续证书申请失败)
location ^~ /.well-known/acme-challenge/ {
root /www/wwwroot/yzf522.cn;
default_type text/plain;
allow all;
}
- 进入站点详情页 → SSL 证书
- 选择
Let's Encrypt→ 勾选域名yourdomain.com和www.yourdomain.com - 点击 申请证书 → 宝塔自动验证并配置 HTTPS,同时开启 强制 HTTPS
申请 Let’s Encrypt 证书时遇到了文件验证失败(404 错误)
1 | ping www.yzf522.cn |
确保返回的 IP 是你的阿里云服务器公网 IP,如果不是,回到域名注册商控制台修正 A 记录。
上传本地博客文件到服务器(核心)
解压压缩包(覆盖当前目录)
右键点击
yzf522-blog.zip→选择「解压」;修复目录权限(规避后续操作报错)
1
2
3
4
5
6
7
8
9# 解除可能存在的user.ini不可变属性(宝塔文件)
chattr -i /www/wwwroot/yzf522.cn/user.ini 2>/dev/null
# 递归将目录所有者设为www:www(宝塔运行用户)
chown -R www:www /www/wwwroot/yzf522.cn
# 递归设置权限(目录755,文件644)
find /www/wwwroot/yzf522.cn -type d -exec chmod 755 {} \; 2>/dev/null
find /www/wwwroot/yzf522.cn -type f -exec chmod 644 {} \; 2>/dev/null
部署 Hexo 博客(生成静态文件)
1 | \# 进入站点根目录 cd /www/wwwroot/yzf522.cn # 以www用户权限安装依赖(基于package.json) sudo -u www npm install |
.生成静态文件(还原本地博客的所有页面)
1 | # 以www用户权限执行,避免权限问题 |
4. 配置 Nginx 指向静态文件目录
- 宝塔→网站→
yzf522.cn→「修改」; - 找到「根目录」,将默认的
/www/wwwroot/yzf522.cn改为/www/wwwroot/yzf522.cn/public; - 点击「提交」,宝塔自动重载 Nginx 配置。
验证迁移结果(最终验收)
- 浏览器访问
https://yzf522.cn或https://www.yzf522.cn; - 核心验证点:
- ✅ 地址栏显示「小锁」(HTTPS 生效);
- ✅ 首页和本地博客完全一致;
- ✅ 点击任意文章链接(如
/2024/05/06/关于网站/),能正常加载(无 404); - ✅ 图片、导航、评论等功能和本地一致。
八、日常维护流程(迁移后更新博客)
本地修改博客后,按以下步骤同步到服务器:
步骤 1:本地操作(写文章 / 改主题)
1 | # 1. 本地新建/编辑文章 |
步骤 2:重新打包上传
- 本地重新打包:
zip -r yzf522-blog.zip .; - 宝塔→文件→
/www/wwwroot/yzf522.cn→上传新的yzf522-blog.zip→解压(覆盖);
步骤 3:服务器重新部署
1 | # 宝塔终端执行 |
本地一键部署到服务器
步骤 1:本地安装部署插件
安装 Git 部署插件
1 | npm install hexo-deployer-git --save |
在服务器上创建 Git 仓库
登录服务器,执行以下命令:
1 | # 1. 创建裸仓库目录(注意是 repo,不是 reho) |
写入
1 | GIT_WORK_TREE=/www/wwwroot/yzf522.cn git checkout -f |
步骤 2:添加执行权限(Git 钩子必须)
1 | chmod +x /var/repo/blog.git/hooks/post-receive |
修改本地 _config.yml 的部署配置(替换你的服务器 IP):
1 | deploy: |
上传
1 | hexo clean && hexo g && hexo d |
1 | # 安装 Git(已装可跳过) |
直接部署到服务器
一、迁移核心问题总结(按场景分类,避坑关键)
1. 环境与权限问题
- 普通用户无系统操作权限(yum/install/systemctl 失败),需切换 root 或用 sudo;
- Git/博客目录权限不匹配,导致钩子脚本执行失败、文件无法复制;
- 阿里云 AliLinux 3 特殊环境:默认仓库无 Nginx、YUM 排除 Nginx 安装、$releasever 变量识别错误。
2. 配置冲突问题
- 宝塔面板残留配置(HTTPS 强制跳转、站点路径绑定)覆盖 Nginx 主配置;
- Nginx 多配置文件冲突(default.conf 与自定义 hexo.conf 重复绑定域名);
- Hexo 路由规则(try_files)拦截 Let’s Encrypt 验证路径(/.well-known/acme-challenge/)。
3. HTTPS 与域名问题
- 域名解析多 IP 冲突(错误 IP 导致证书验证 404);
- 浏览器 HSTS 缓存强制 HTTP 跳 HTTPS,未配置证书时无法访问;
- Certbot –nginx 模式与 Hexo 路由冲突,验证失败。
4. 部署流程问题
- 钩子脚本冗余(重复执行 npm install/hexo g),导致 command not found;
- 本地 Hexo 配置错误(repo 路径格式错误、主题静态资源绝对路径)。
二、最优迁移方案(零踩坑版,适用于 Hexo+安知鱼主题+纯 Linux 服务器)
前置准备
- 服务器:CentOS/AliLinux 3,已开放 22(SSH)、80(HTTP)、443(HTTPS)端口;
- 本地:Hexo 博客已配置安知鱼主题,静态资源用相对路径(/images/xxx.png);
- 域名:完成实名认证,仅保留指向服务器公网 IP 的 A 记录(@ 和 www),TTL 设为 10分钟。
步骤 1:服务器环境初始化(root 用户执行)
1 | # 1. 更新系统+安装必备工具 |
步骤 2:创建 Git 仓库与自动部署钩子
1 | # 1. 创建 git 用户+授权(避免 root 风险) |
步骤 3:Nginx 配置(绑定域名+兼容 HTTPS+Hexo 路由)
1 | # 1. 删除默认配置,避免冲突 |
步骤 4:本地 Hexo 配置与部署
1 | # 1. 编辑本地 Hexo 根目录 _config.yml |
步骤 5:配置 HTTPS(永久解决跳转问题)
1 | # 1. 安装 Certbot+申请证书(webroot 模式,避免路由冲突) |
步骤 6:最终验证
- 浏览器打开隐私窗口,访问
https://yzf522.cn,显示绿色小锁+安知鱼主题; - 测试路由:点击分类/标签/文章,刷新无 404;
- 验证 HTTP 跳转:访问
http://yzf522.cn,自动跳 HTTPS。
三、下次迁移快速复用要点
- 环境依赖:优先用 root 用户安装 Git/Nginx/Node.js,避免权限踩坑;
- 配置模板:保存
hexo.conf和post-receive脚本,下次直接复制修改域名; - HTTPS 捷径:用
certbot certonly --webroot模式,避开 Nginx 配置冲突; - 域名解析:迁移前先清理多余 IP 记录,仅保留服务器 IP;
- 本地配置:备份
_config.yml和_config.zhiyu.yml,下次替换服务器 IP 即可部署。
按此方案迁移,可避开 99% 之前遇到的权限、配置冲突、HTTPS 验证等问题,全程 30 分钟内完成。







