将Hexo搭建到自己的服务器上
第一部分:服务器端的操作
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镜像
- 搜索地址:http://npm.taobao.org/
- registry地址:http://registry.npm.taobao.org/
cnpmjs镜像
- 搜索地址:http://cnpmjs.org/
- registry地址:http://r.cnpmjs.org/
如何使用
有很多方法来配置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搭建到自己的服务器上的更多相关文章
- git 服务器搭建,在自己服务器上搭建私有仓库
创建一个简单的私人Git版本控制服务器,首先得有个服务器(屁话).这种方式适合人比较少的情况,管理不需要很复杂,只要增加几个账号就能搞定. 如下面的情况,有一个服务器,两个客户端. 服务器:Debia ...
- 【tomcat环境搭建】一台服务器上部署多个tomcat
一台服务器上面如何部署多个tomcat?其实linux和windows步骤都差不多,都是: 第一步:解压tomcat安装包后,复制一份并且重命名:多个tomcat就多复制一份 第二步:将复制的tomc ...
- 在 Ubuntu 14.04 服务器上部署 Hexo 博客
版权声明:本文由宋秉金 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/241080001487926962 来源:腾云阁 ...
- 使用Hexo搭建个人博客并部署到GitHub或码云上全过程
一.前言 如上图所示:GitHub有Github Pages,而码云也有码云 Pages 1.Github Pages或Gitee Pages是什么呢? Github Pages或者Gitee Pag ...
- hexo搭建个人博客部署到个人服务器(git+nginx+hexo+next)
本次以阿里云服务器为例,详细讲解步骤: 一.本地环境[客户端] 这里以本地的win10电脑为例 1.下载node, 默认安装,安装完成之后,node -v看看版本号 node下载 2.安装node(傻 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置
前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...
随机推荐
- python关于变量介绍
python变量 一.变量分为两种解释 1.随时可以变化的量 称之为变量 (变化多端嘛) 2.不会被变化的量 称之为常量 (常常不动嘛) #我们学习的python中没有真正定义的常量 #只有在绑定一个 ...
- Svelte3聊天室|svelte+svelteKit仿微信聊天实例|svelte.js开发App
基于svelte3.x+svelteKit构建仿微信App聊天应用svelte-chatroom. svelte-chatroom 基于svelte.js+svelteKit+mescroll.js+ ...
- Linux curl遇到错误curl: (3) Illegal characters found in URL
服务器上执行一个脚本,在linux新建的sh,把本地编辑器的内容粘贴到文件里. 结果执行的时候报错了. 问题就是 curl:(3)Illegal characters found in URL 看着一 ...
- Java学习day16
IO流即输入/输出流,按数据类型分为:字节流和字符流 与IO有关的操作最后都要释放,使用close方法 以字节流形式写入数据后需要换行可以添加换行符,注意旧版系统之间识别的换行符不相同,旧版Windo ...
- Apache Doris ODBC Mysql外表在Ubuntu下使用方法及配置
Apache Doris 社区 2022 年的总体规划,包括待开展或已开展.以及已完成但需要持续优化的功能.文档.社区建设等多方面,我们期待有更多的小伙伴参与进来讨论.同时也希望多多关注Doris,给 ...
- Apache Doris ODBC外表数据库主流版本及其ODBC版本对应关系
本文是在CentOS 7.9下测试通过 使用的Doris是:0.15.0 unixODBC版本是:2.3.1 1.PostgreSQL 以下是PostgreSQL数据库版本和PostgreSQL OD ...
- 【多线程与高并发原理篇:3_java内存模型】
1. 概述 Java 内存模型即 Java Memory Model,简称 JMM.从抽象的角度来看,JMM 定义了线程和主内存之间的抽象关系,线程之间的共享变量存储在主内存中,每个线程都有一个私有的 ...
- 谁动了我的主机? 之活用History命令
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! Linux系统下可通过history命令查看用户所有的历 ...
- 1.ArrayList和LinkedList区别
说⼀下ArrayList和LinkedList区别 具体区别 1.1. ⾸先,他们的底层数据结构不同,ArrayList底层是基于数组实现的,LinkedList底层是基于链表实现的 1.2. 由于底 ...
- 论文阅读 Dynamic Graph Representation Learning Via Self-Attention Networks
4 Dynamic Graph Representation Learning Via Self-Attention Networks link:https://arxiv.org/abs/1812. ...