腾讯云主机部署hexo博客

缘由

  • coding只能部署不超过134217728 字节大小的博客:Depot archive exceeded size limit 134217728 bytes
  • gitee无法自定义域名
  • github国内访问略慢

因此我想将博客部署到我自己的腾讯云主机中。

开始部署

我的主机配置信息如下:

操作系统 CentOS 7.6 64位
CPU 1 核
内存 2 GB
公网带宽 1 Mbps

云服务器端配置 git

  1. 安装依赖库:
 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
  1. 安装编译工具:
yum install gcc perl-ExtUtils-MakeMaker package 
  1. 下载 git (下载到 /usr/local/src 目录下):
cd /usr/local/src 
wget http://ftp.ntu.edu.tw/software/scm/git/git-2.9.5.tar.gz
  1. 解压到当前目录
tar -zvxf git-2.9.5.tar.gz
  1. 编译
cd git-2.9.5
make all prefix=/usr/local/git
  1. 安装 git 到 /usr/local/git 目录下
make install prefix=/usr/local/git
  1. 配置 git 环境变量
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
  1. 使 git 环境变量生效
source /etc/bashrc
  1. 验证安装完成
git --version

创建 git 仓库

  1. 创建hexo的仓库

git仓库用于存放博客网站资源。在 home/git 的目录下,创建一个名为hexo的仓库。
如果没有 home/git 目录,需要先创建,然后修改目录的所有权和用户权限。

mkdir /home/git/
chown -R $USER:$USER /home/git/
chmod -R 755 /home/git/
cd /home/git/
git init --bare hexo.git
  1. 创建git hooks

/home/git/hexo.git 下,有一个自动生成的 hooks 文件夹,我们创建一个新的 git 钩子 post-receive,用于自动部署。

vim /home/git/hexo.git/hooks/post-receive
  1. 将以下代码写到post-receive
 #!/bin/bash 
 git --work-tree=/home/hexo --git-dir=/home/git/hexo.git checkout -f
  1. 修改文件权限,使得其可执行。
chmod +x /home/git/hexo.git/hooks/post-receive

配置 Nginx

  1. 如果没有安装Nginx就安装并且启动
yum install -y nginx
service nginx start

当然也可以使用宝塔面板安装Nginx(过程不细说)

  1. 创建博客保存目录hexo
 mkdir /home/hexo/ 
 chown -R $USER:$USER /home/hexo/
 chmod -R 755 /home/hexo/
  1. 配置Nginx
  • 添加站点
  • 输入域名(域名必须是备案了)
  • 选择站点根目录/home/hexo/
    配置Nginx
  1. 配置https
    如果需要https,则需要在宝塔面板添加域名的证书。
    在这里插入图片描述

修改hexo站点配置文件

  1. 打开hexo站点配置文件_config.yml(不是主题配置文件)
  2. 修改
deploy:
- type: git
  repo: root@你主机的域名:/home/git/hexo
  branch: master
  1. 开始部署
hexo clean
hexo generate
hexo deploy
### 部署 Hexo 到云服务器 Hexo 是一种快速、简洁且高效的静态博客框架,通常用于构建个人博客或技术文档。以下是关于如何将 Hexo 博客部署到云服务器的相关说明。 #### 1. 准备工作 在开始之前,需要确保本地环境已经配置好必要的工具和依赖项。这包括 Node.js 和 Git 的安装[^4]。如果尚未完成这些步骤,则需先按照官方指南或其他资源中的方法进行设置。 对于云端部分,可以选用多种类型的主机服务提供商,比如阿里云 ECS 实例、腾讯云 CVM 或 AWS EC2 等实例作为目标机器运行环境。此外还需要确认该虚拟机操作系统版本以及开放端口情况是否满足条件访问需求。 #### 2. 修改 `_config.yml` 文件 为了实现自动化发布功能,在项目的根目录下编辑 `blog/_config.yml` 文件时应加入如下字段定义: ```yaml deploy: type: git repo: github: git@github.com:<username>/<username>.github.io.git,master coding: git@git.coding.net:<username>/<username>.git,master ``` 上述代码片段展示了两种可能的目标仓库地址——GitHub Pages 及 Coding 平台上的私有存储库链接;实际操作过程中只需保留其中一个有效路径即可[^1]。 #### 3. 使用 SSH 密钥认证方式连接远程服务器 考虑到安全性因素,建议通过基于公私密钥对的身份验证机制代替传统密码登录形式来管理与各平台间的数据交换过程。具体做法可参照相关手册创建专属用户的SSH key,并将其添加至对应服务商账户下的授权钥匙列表里头去。 #### 4. 设置自定义域名(可选) 如果有计划绑定个性化网址的话,那么除了正常购买注册之外还需调整DNS解析记录指向新购置的空间IP地址上。与此同时启用HTTPS加密传输协议也是提升用户体验不可或缺的一环,借助Let's Encrypt免费证书或者第三方CDN加速节点如Cloudfalre都可以轻松达成目的。 #### 5. 自动化流程优化提议 随着项目规模扩大和技术栈更新迭代速度加快,手动执行命令难免显得繁琐低效。因此借鉴其他开发者经验教训后推荐尝试引入CI/CD流水线概念简化日常运维事务负担。例如利用 GitHub Actions 来替代原有单纯依靠 hexo-deployer-git 插件单独处理的方式,从而达到更灵活可控的效果[^2]。 ```yaml name: Deploy Blog via GH Action on: push: branches: - main jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup NodeJS environment uses: actions/setup-node@v2 with: node-version: '16' - run: npm install - run: npm run generate # or whatever your command is called - name: Deploy to Server env: PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} run: | mkdir -p ~/.ssh/ echo "$PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan example.com >> ~/.ssh/known_hosts rsync --archive --compress --progress _site/* user@example.com:/path/to/webroot/ ``` 以上脚本示范了一个完整的持续集成管道设计思路,涵盖了从检出源码直至最终同步生成产物整个生命周期内的各个环节要点。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值