Hexo + GitEE 搭建、备份、恢复、多终端
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
Hexo 是使用的比较多的博客框架了,我也尝试自己搭一下,做一些基础功能的测试。之所以没有使用 GitHub 而选择了码云,一是我有自己的 VPS 不需要使用 GitHub Pages ,所以本文也没有关于如何使用 GitHub Pages 的教程;二是 GitHub 上私有仓库是收费的,码云上面能创建免费的私有仓库。也有人选择使用 Docker 来创建博客环境,做镜像备份,这里没有使用此方案,各有所好吧!
环境
主服务器系统版本与内核版本:
[root@dbn-japan ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@dbn-japan ~]# uname -r
3.10.0-862.3.2.el7.x86_64
测试服务器系统版本与内核版本:
[root@host ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@host ~]# uname -r
4.10.4-1.el7.elrepo.x86_64
安装
wget
yum install -y wget
NodeJS
# 下载nodejs最新的bin包
wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz
# 解压
xz -d node-v10.13.0-linux-x64.tar.xz
tar -xf node-v10.13.0-linux-x64.tar
# 移动目录
mv node-v10.13.0-linux-x64 /usr/local/nodejs
# 部署文件
ln -s /usr/local/nodejs/bin/node /usr/bin/node
ln -s /usr/local/nodejs/bin/npm /usr/bin/npm
可以去官方网站下载,我这里使用的类型为:Linux Binaries (x64)
测试
[root@dbn-japan packages]# node -v
v10.13.0
[root@dbn-japan packages]# npm -v
6.4.1
如果输出了版本号,说明安装成功。
Git
yum install -y git
初始化设置:
git config --global user.email "dbnuo@foxmail.com"
git config --global user.name "BNDong"
Hexo
npm install -g hexo-cli
安装后尝试执行命令: hexo
如果出现下面的输出,按我下面的方法解决,没有则跳过。
[root@dbn-japan packages]# hexo
-bash: hexo: command not found
编辑环境变量文件: vim /etc/profile ,在文件末尾增加下面设置:
export PATH=$PATH:/usr/local/nodejs/lib/node_modules/hexo-cli/bin
刷新环境变量: source /etc/profile ,这时再运行命令 hexo 就会有正确的输出了。
配置
创建项目与分支
创建新的分支:sources
- master:存放 Hexo 编译生成的静态资源。
- sources:存放源文件,用来备份博客。
设置 SSH Key
运行下面的命令创建 SSH Key,邮箱部分改成你创建账户时候的邮箱:
[root@dbn-japan blog.dbnuo.org]# ssh-keygen -t rsa -C "dbnuo@foxmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # 目录
Enter passphrase (empty for no passphrase): # 输入密码,可回车跳过
Enter same passphrase again: # 再次输入密码
查看公开密钥:
cat ~/.ssh/id_rsa.pub
将公开密钥添加至码云。
拉取项目
跳转至网站根目录,克隆项目至本地:
git clone https://gitee.com/dbnuo/bnd-hexo.git
跳转至拉取的项目目录:
# 创建 hexo 目录
mkdir hexo
# 进入 hexo 目录
cd hexo/
# 初始化 hexo 目录
hexo init
npm install
# 安装插件
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-server --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save
建站
先看文件夹里都有什么:
[root@dbn-japan hexo]# ls -a
. .. _config.yml .gitignore node_modules package.json package-lock.json scaffolds source themes
- _config.yml:站点的配置文件,需要备份;
- themes:主题文件夹,需要备份;
- source:博客文章的 .md 文件,需要备份;
- scaffolds:文章的模板,需要备份;
- package.json:安装包的名称,需要备份;
- .gitignore:限定在 push 时哪些文件可以忽略,需要备份;
- .git:主题和站点都有,标志这是一个 git 项目,不需要备份;
- node_modules:是安装包的目录,在执行 npm install 的时候会重新生成,不需要备份;
- public:是 hexo g 生成的静态网页,不需要备份;
- .deploy_git:同上,hexo g 也会生成,不需要备份;
- db.json:文件,不需要备份。
配置 _config.yml
基础配置可以参考官方文档的配置说明。这里需要在末尾添加 Git 的配置:
...
deploy:
type: git
repo: https://gitee.com/dbnuo/bnd-hexo.git
branch: master
message: 'web updata: {{now("YYYY-MM-DD HH/mm/ss")}}'
生成页面并提交
运行命令: hexo cl && hexo g -d 输入用户名和密码后,页面代码就会提交至码云项目中。
将网站目录指定至 hexo 的 public 文件夹中,访问网站:
备份
跳转至项目目录 bnd-hexo:
git checkout -b sources # 创建切换分支
git push origin sources # 提交代码至分支
提交至码云项目分支:
至此搭建完毕,代码也备份到项目中了。为了测试备份恢复,我新建了个文章 test 并提交进行测试。
恢复
切换至测试服务器,基础的安装和设置可以参考上面的流程。
跳转至网站的根目录:
# 拉取项目至本地
git clone https://gitee.com/dbnuo/bnd-hexo.git
# 跳转至目录
cd bnd-hexo
# 创建分支并拉取
git checkout -b sources origin/sources
# 跳转至源文件目录
cd hexo
# 初始安装
npm install npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-server --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save
执行完毕,hexo 就恢复了,可以正常操作了。
多终端
至此两台服务器都对一个项目库进行操作,可以说是多终端了,我在测试服务器新建了个文章: hexo new post "test2"
创建成功后提交上传。
切换回主服务器:
# 跳转至项目目录
cd bnd-hexo
# 拉取项目
git pull origin sources
# 跳转至源文件目录
cd hexo/
# 重新编译
hexo cl && hexo g -d
再访问网站:
看到这里出现了文章 test2 ,至此多终端编辑操作成功。
结语
这里简单介绍了一些必要的流程操作,建议大家将一些基本操作封装成脚本来操作,至于主题和优化大家可以参考一些网上的资源教程,感谢阅读,拜谢!
Hexo + GitEE 搭建、备份、恢复、多终端的更多相关文章
- 【新手/零基础】Hexo+Gitee个人博客搭建教程--详细版
前言 点此转到--精简版 可能很多小伙伴都有搭建一个属于自己的博客的想法.但是经常是无奈于自己匮乏的知识.但是,每个老手都是新手过来的,再困难的事情,只要肯花一点时间都可以办成. 本次教程分为详细版和 ...
- Nexus 3搭建及备份恢复
Nexus 3搭建 官网下载相应的软件版本:Nexus官网 配置仓库存放地址 # tar xf xxxx # more bin/nexus.vmoptions -Xms500M -Xmx500M -X ...
- 全网最全小白搭建Hexo+Gitee/Coding
全网最全小白搭建Hexo+Gitee/Coding 本站内容已全部转移到https://www.myyuns.ltd,具体请移步到www.myyuns.ltd查看
- mysql之6备份恢复
基本意义: 将数据另存到其他设备,以便于出现问题时恢复数据 为什么要备份: 灾难恢复:需求改变:测试 几个事先需要考虑的问题: 可以容忍丢失多长时间的数据?恢复要在多长时间内完成?是否 ...
- 《Hexo+github搭建个人博客》
<Hexo+github搭建个人博客> 文/冯皓林 完稿:2016.4.22-2016.4.23 注意:本节教程只针对Windows用户.本教程由无人赞助,赞助写出. <Hexo+g ...
- svn服务器的搭建备份和还原和svnmanager的使用
svn服务器的搭建备份和还原和svnmanager的使用 一.svn服务端软件的安装和配置 1.安装svn版本库软件 # yum install -y subversion 2.建立svn版本库数据存 ...
- mongodb集群配置及备份恢复
Mongodb安装: 编辑/etc/yum.repos.d/mongodb.repo,添加以下: [MongoDB] name=MongoDB Repository baseurl=https://r ...
- 使用Hexo+Github搭建属于自己的博客(基础)
前言 hexo是一个台湾人做的基于Node.js的静态博客程序,优势是生成静态文件的速度非常快,支持markdown, 我最终选定它的原因是它速度快而且不容易出错,并且可以一键部署到github或者其 ...
- 【教程向】——基于hexo+github搭建私人博客
前言 1.github pages服务生成的全是静态文件,访问速度快: 2.免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 3.可以随意绑定自己的域名,不仔细看的话根本看 ...
随机推荐
- mongodb副本集高可用架构
一.简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点. Mongodb Driver(客户端)的所有数据都写入Primary,Sec ...
- JDK源码分析(7)之 Reference 框架概览
对于Reference类大家可能会比较陌生,平时用的也比较少,对他的印象可能仅停在面试的时候查看引用相关的知识点:但在仔细查看源码后发现Reference还是非常实用的,平时我们使用的类都是强引用的, ...
- Nagios 监控系统架构
Nagios 监控系统架设全攻略 简介: Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT ...
- 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(3)- 音频显示实现(Matplotlib, NumPy1.15.0)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之音频显示实现. 音频显示是Jays-PySPEECH的主要功能,Jays-PySPEECH借 ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
- arcgis 10 版本连接SDE数据库报错:No ArcSDE server license found 最有效的解决方法
这个问题可以这样解决:就在在Oracle中登入SDE数据库 进入到SDE数据库中后,找到表SERVER_CONFIG,其中有一行数据记录的就是我们需要进行修改的数据 你需要做的就是找到一个可用的,前面 ...
- windows安装elasticsearch
1. 去官网 https://www.elastic.co/cn/ 下载 注意: ES对JDK版本有较高的要求,5.x及以上版本需要JDK8支持,本人此次使用2.4.6版本2. 下载后,JDK先安装, ...
- js 递归修改json无限级key值
var tree = [ { name: 'node1' }, { name: 'node2', children: [{ name: 'node-2-1' }, { name: 'node2-2' ...
- Activity的启动流程
前言:新启动一个activity分为两种情况,第一种是在Launcher的桌面点击icon图标启动一个新的应用,第二种是在应用启动的情况下从OneActivity->TwoActivity 其实 ...
- Netty学习笔记(五) 使用Netty构建静态网页服务器
昨天在继续完善基于Netty构建的聊天室系统的过程中,发现了一个有意思的知识点,特此拿来做一个简单的静态网页服务器,好好的玩一玩Netty. 但是不管怎么说利用netty实现各种功能的流程都是类似的 ...