• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. 发布在github pages
    1. 1.1. 安装hexo-deployer-git
    2. 1.2. 创建github仓库
    3. 1.3. 添加配置项
    4. 1.4. 静态化与发布
    5. 1.5. 尝试访问
  2. 2. 在自己服务器上静态化部署
    1. 2.1. 创建裸仓库
    2. 2.2. 编写git hooks
    3. 2.3. 创建用户与授权
    4. 2.4. 修改配置文件
    5. 2.5. 静态化与发布
  3. 3. 启动web服务器

Hexo服务器静态化部署

2018-07-02 14:52:16
总字数 946
预计阅读时间 3 分钟

hexo自带静态化发布功能, 可以发布到github pages等第三方提供的静态站点服务

发布在github pages

安装hexo-deployer-git

首先需要在博客项目目录当中安装hexo-deployer-git

1
npm install hexo-deployer-git --save-dev

创建github仓库

仓库的名字必须是[github用户名].github.io
比如我的github用户名是colorfulsweet
那么就应该创建名为 colorfulsweet.github.io 的仓库

添加配置项

在_config.yml当中配置

1
2
3
4
deploy:
type: git
repo: git@github.com:[github用户名]/[github用户名].github.io.git
branch: master

比如我的github用户名是colorfulsweet
那么repo就是 git@github.com:colorfulsweet/colorfulsweet.github.io.git

静态化与发布

1
2
3
4
5
6
7
8
9
10
# 清空之前生成过的静态化页面
hexo clean

# 生成静态化页面
hexo generate
# 或者 hexo g

# 发布到git远程仓库
hexo deploy
# 或者 hexo d
  • 如果出现错误, 可以尝试手动删除.git_deploy, public, db.json
    然后重新执行生成和发布操作
  • 如果发布过程提示出现 Permission denied
    可以对git远程仓库尝试换用https协议
    也就是https://github.com/[github用户名]/[github用户名].github.io.git

尝试访问

地址是https://[github用户名].github.io

在自己服务器上静态化部署

上述方式是将静态化之后的代码托管在github pages, 如果要在自己的服务器上实现静态化的部署
那么就需要在服务器上创建一个git的远程仓库

创建裸仓库

1
2
mkdir /git-repo && cd /git-repo
git init --bare blog.git

创建的裸仓库名称是blog.git

然后还需要创建一个存放静态页面文件的根目录

1
mkdir -p /www/website

编写git hooks

git钩子简单来说就是能在特定的重要动作发生时触发自定义脚本
类似于回调
现在我们需要在提交代码到这个裸仓库的时候触发我们自定义的脚本

1
2
3
4
5
6
cd hooks
vim post-update
# 内容如下

#!/bin/sh
git --work-tree=/www/website --git-dir=/git-repo/blog.git checkout -f

每次这个裸仓库收到 git 更新时会把文件更新到 worktree

创建用户与授权

为了安全起见, 最好是给git提交操作创建单独的linux用户

1
2
3
4
5
6
7
8
9
10
11
# 创建用户
adduser git
# 设置密码(有些linux发行版本会在创建用户时要求设置密码, 则该步骤可跳过)
passwd git

# 相关目录的授权
chown -R git:git /git-repo
chmod 755 /git-repo

chown -R git:git /www/website
chmod 755 /www/website

为了安全起见, 最好是限制用户git的shell登录权限, 只能通过git-shell登录
需要修改/etc/passwd文件
将

1
git:x:1001:1001::/home/git:/bin/bash

修改为

1
git:x:1001:1001::/home/git:/usr/bin/git-shell

修改配置文件

现在可以把_config.yml当中的远程仓库地址修改为自己服务器上的仓库地址了

1
2
3
4
deploy:
type: git
repo: git@[服务器IP]:/git-repo/blog.git
branch: master

注意 :

  • 如果服务器上sshd进程所在的端口不是22
    那么需要这样写ssh://git@[服务器IP]:[端口号]/git-repo/blog.git
  • @前面的git实际上就是刚才创建的用户名, 如果使用其他用户名, 这里需要与之对应

静态化与发布

与上面发布到github pages要执行的命令完全相同

1
hexo clean && hexo g && hexo d

但是在windows环境当中最好在git bash当中执行, 而不要在windows自己的cmd中执行
执行时应该会出现输入密码提示框

输入git用户的密码

启动web服务器

因为是静态页面, 所以部署就十分简单了, 使用nginx或者apache都可以
将站点的根目录设置为/www/website即可

在nginx当中就是

1
2
3
4
location / {
root /www/website;
index index.html index.htm;
}

在apache当中就是

1
DocumentRoot "/www/website"
  • Hexo
  • 前端杂烩

扫一扫,分享到微信

3.5、Docker(5)-容器连接
3.4、Docker(4)-nginx 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆