http://xybin.top/posts/9373.html

第一部分:服务器端的操作

1.安装git 和nginx

yum install -y nginx git

2.添加一个git用户

#添加用户
useradd git
#设置密码
passwd git # 给git用户配置sudo权限
chmod 740 /etc/sudoers
#编辑sudoers配置文件
vim /etc/sudoers
# 找到root ALL=(ALL) ALL,在它下方加入一行 一般在文件文件最下方
git ALL=(ALL) ALL chmod 400 /etc/sudoers

3.给git用户添加ssh密钥

su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys #将ssh密钥粘贴进去

4.创建git仓库实现自动部署

创建git仓库并使用git-hooks实现自动部署

sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir -p /var/www/hexo
cd /var/repo #转到git仓库的文件夹
sudo git init --bare blog.git #创建一个名叫blog的仓库
sudo vim /var/repo/blog.git/hooks/post-update

post-update的内如如下:

#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

给post-update授权

cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/
sudo chown -R git:git /var/www/hexo
sudo chmod +x post-update #赋予其可执行权限

5.配置nginx

cd /etc/nginx/conf.d/
vim blog.conf

blog.conf的内如如下:

server {
listen 80 default_server;
listen [::] default_server;
server_name 127.0.0.1;#可以写自己的域名
root /var/www/hexo;
}

检查Nginx语法并重载nginx:

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx -s reload

6.修改git用户的默认shell环境

vim /etc/passwd
#修改最后一行
#将/bin/bash修改为/usr/bin/git-shell git:x:1002:1002::/home/git:/usr/bin/git-shell

7.解析域名

到购买域名的供应商控制台,将域名解析到自己的服务器即可。

第二部分:客户端的操作

1. 安装Git

windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具。

官网下载速度慢可以使用镜像下载

linux:对linux来说就很简单,只需要一行代码

sudo apt-get install git

安装完成,使用git --version命令 来查看版本

2. 安装nodejs

Hexo使用需要安装一下nodeJs和里面的npm工具。

windows:nodejs选择LTS版本就行了。

linux:

sudo apt-get install nodejs
sudo apt-get install npm

安装完后,打开命令行

node -v
npm -v

配置npm镜像

由于npm的源在国外,所以国内用户使用起来各种不方便。下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。

国内优秀npm镜像
淘宝npm镜像
cnpmjs镜像
如何使用

有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像举例:

1.临时使用
npm --registry https://registry.npm.taobao.org install express
2.持久使用(推荐使用)
打开cmd使用命令:

npm config set registry https://registry.npm.taobao.org

// 配置后可通过下面命令来验证是否成功
npm config ls
// 此时:metrics-registry = "http://registry.npm.taobao.org/"表示设置成功
npm config get registry
// 或
npm info express

 

3.通过cnpm使用 (也可以使用cnpm)
npm install -g cnpm --registry=https://registry.npm.taobao.org
// 使用
cnpm install expresstall express

3.安装hexo

创建一个文件夹blog,然后进入(cd)到此文件夹下(或者在此文件夹下直接右键git bash打开)。

输入命令

npm install -g hexo-cli

查看一下hexo版本

hexo -v

至此就全部安装完了。

初始化hexo

hexo init myblog

这个myblog可以自己取什么名字都行,然后

cd myblog //进入这个myblog文件夹
npm install

新建完成后,指定文件夹目录下有:

  • node_modules: 依赖包
  • public:存放生成的页面
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题
  • _config.yml: 博客的配置文件
hexo g
hexo server

启动hexo服务,浏览器输入localhost:4000就可以看到你生成的博客

4. 将hexo部署到服务器

安装完hexo就可以将hexo生成的文章部署到服务器上,打开站点配置文件 _config.yml,翻到最后,修改为

deploy:
type: git
repo: git@***.***.***.***:/var/repo/blog.git # IP填写自己服务器的IP即可
branch: master

先安装deploy-git ,才能用命令部署到Git。

npm install hexo-deployer-git --save

然后

hexo clean
hexo generate
hexo deploy
hexo clean清除了你之前生成的东西,也可以不加。
hexo generate 生成静态文章,可以用 hexo g缩写
hexo deploy 部署文章,可以用hexo d缩写

注意deploy时可能要先输入email和name

git config --global user.email "你的邮箱"
git config --global user.name "你的名字"

更新完就可以在你浏览器里输入你设置的域名就可以看见你的劳动成果了

5. 发布个人文章

接下来就可以正式开始写文章喽。

hexo new newpapername

然后在source/_post中打开markdown文件,就可以开始编辑了。当你写完的时候,再

hexo clean
hexo generate
hexo deploy

输入密码上传完成就可以看到更新了。

将Hexo搭建到自己的服务器上的更多相关文章

  1. git 服务器搭建,在自己服务器上搭建私有仓库

    创建一个简单的私人Git版本控制服务器,首先得有个服务器(屁话).这种方式适合人比较少的情况,管理不需要很复杂,只要增加几个账号就能搞定. 如下面的情况,有一个服务器,两个客户端. 服务器:Debia ...

  2. 【tomcat环境搭建】一台服务器上部署多个tomcat

    一台服务器上面如何部署多个tomcat?其实linux和windows步骤都差不多,都是: 第一步:解压tomcat安装包后,复制一份并且重命名:多个tomcat就多复制一份 第二步:将复制的tomc ...

  3. 在 Ubuntu 14.04 服务器上部署 Hexo 博客

    版权声明:本文由宋秉金 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/241080001487926962 来源:腾云阁  ...

  4. 使用Hexo搭建个人博客并部署到GitHub或码云上全过程

    一.前言 如上图所示:GitHub有Github Pages,而码云也有码云 Pages 1.Github Pages或Gitee Pages是什么呢? Github Pages或者Gitee Pag ...

  5. hexo搭建个人博客部署到个人服务器(git+nginx+hexo+next)

    本次以阿里云服务器为例,详细讲解步骤: 一.本地环境[客户端] 这里以本地的win10电脑为例 1.下载node, 默认安装,安装完成之后,node -v看看版本号 node下载 2.安装node(傻 ...

  6. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  7. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  8. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  9. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置

    前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...

随机推荐

  1. Vue基础开发入门之简单语法知识梳理(思维导图详解)

    基于个人写的以下关于Vue框架基础学习的三篇随笔,在此基础上,做一个阶段性的知识总结,以此来检验自己对Vue这一段时间学习的成果,内容不多,但很值得一看.(思维导图详解)

  2. 对比学习 ——simsiam 代码解析。

    ​  目录 1 : 事先准备 . 2 : 代码阅读. 2.1: 数据读取 2.2: 模型载入 3 训练过程: 4 测试过程: 5 :线性验证 6 : 用自己数据集进行对比学习. 第一:  改数据集 : ...

  3. Mysql、Oracle锁表处理

    MySql解锁方式 1 # 1. 查看当前数据库锁表的情况 2 SELECT * FROM information_schema.INNODB_TRX; 3 # 2. 杀掉查询结果中锁表的trx_my ...

  4. python学习-Day26

    目录 今日内容详细 编程思想 面向过程编程 面向对象编程 类与对象 概念 类与对象的创建 先定义类 后产生对象 语法结构 如何产生对象 对象的实例化 绑定方法 今日内容详细 编程思想 面向过程编程 将 ...

  5. XCTF练习题---MISC---hit-the-core

    XCTF练习题---MISC---hit-the-core flag:ALEXCTF{K33P_7H3_g00D_w0rk_up} 解题步骤: 1.观察题目,下载附件,发现是一个.core文件 2.打 ...

  6. NLP教程(2) | GloVe及词向量的训练与评估

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  7. 快速创建简单的mybatis应用

    1.导包(配置pom.xml) 一定要用这个网站:https://mvnrepository.com/ 点击查看代码 <dependency> <groupId>org.myb ...

  8. CentOS开机流程详解

    一个执着于技术的公众号 开机流程 BIOS: (Basic Input Output System)基本输入输出系统,它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输 ...

  9. Java学习笔记-基础语法Ⅸ-文件

    File File是文件和路径名的抽象表示,File封装的并不是一个真正存在的文件,是一个路径名,可以存在也可以不存在 常用方法: 创建文件:createNewFile() 创建目录:mkdir() ...

  10. wait、notify和notifyAll方法学习

    wait.notify和notifyAll方法 wait() 方法会使该锁资源释放,然后线程进入等待WAITING状态,进入锁的waitset中,然后等待其他线程对锁资源调用notify方法或noti ...