使用Nginx+Hexo光速搭建博客并实现服务器自动部署

第一步 本地安装hexo并初始化项目

安装hexo非常简单,但是安装之前需要确保已经安装了git和node.js

1.安装git

1.Windows用户可以直接下载安装文件安装
2.Mac用户可以下载安装文件,或者使用homebrew安装

brew install git

3.Linux用户使用命令(Ubuntu, Debian)

sudo apt-get install git-core

或命令(Fedora, Red Hat, CentOS)

sudo yum install git-core

2.安装node

安装node使用nvm

wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

安装之后需要重启终端
然后安装node

nvm install stable

不过由于某种众所周知的原因,安装过程可能非常缓慢,可以考虑科学上网,另外也可以下载安装文件进行安装,或源码文件进行编译安装,node中文网 这里下载似乎比较快。
另外,Windows用户直接下载安装文件安装最快捷,安装时记得勾选Add to Path

3.安装hexo并初始化项目

先检查一下git和node是否安装好了

git --version
node --version

如果正常显示git和node的版本则可以继续下面的操作了,否则请先进行第一步的操作

好的,继续

npm install -g hexo-cli

安装成功后切换到你想要创建博客的目录,然后执行

hexo init <folder>
cd <folder>
npm install

其中folder为博客目录名称,换成你想要的名称即可
至此,第一步已经完成。

第二步 配置服务器

1.配置Nginx

ssh连接你的服务器,参考这里
笔者使用的是腾讯云的cvm,这里便以此为例(这里使用root用户),参考只看第一点即可
安装Nginx

yum install -y nginx

启动Nginx服务

service nginx start

测试Nginx服务器

wget http://127.0.0.1

能正常获取inde.html文件说明Nginx安装成功

2.建立git仓库

安装git,参考第一步
新建git用户

adduser git

建立裸仓,参考

cd /home/git
git init --bare hexo.git
chown -R git:git hexo.git

将本地机器上的ssh公钥填入/home/git/.ssh/authorized_keys文件(若还未创建公钥,参考这里
在本机

cat ~/.ssh/id_rsa.pub

复制公钥
在服务器

nano /home/git/.ssh/authorized_keys

粘贴公钥,Ctrl+x保存,输入y,然后回车即可

配置Nginx

查找Nginx配置文件

nginx -t

笔者的配置文件位于/etc/nginx/nginx.conf,参照这里在server一项中添加

listen       80;
root   /home/git;
server_name  localhost;

location / {
  index  index.html index.htm;
}

注意,笔者是将git用户目录作为Nginx服务器根目录,这里随读者喜好,但是要注意文件权限问题。
保存后重启Nginx服务器

service nginx restart

第三步实现自动部署

在第二步建立的裸仓中(即hexo.git文件夹中),找到hooks目录下的post-update.sample,重命名为post-update
填入如下代码 参考这里

#!/bin/sh
git --work-tree=/home/git --git-dir=/home/git/hexo.git checkout -f

修改权限使其可执行

chmod +x post-update

接下来,在第一步中建立的hexo项目目录,编辑_config.yml,修改deploy项,类似如下

deploy:
  type: git
  repo: git@server:/home/git/hexo.git
  branch: master

将server改为你的服务器地址
在hexo项目目录中安装hexo-deployer-git

npm install hexo-deployer-git --save

好了,现在执行

hexo new <title>

title换成文章标题
然后执行

hexo g -d

g和d是generate和deploy的简写
另外你可以直接编辑或新建hexo项目目录下./source/_posts目录里的md文件(至于Markdown语法,看看这里吧)
这时访问你的服务器试试吧!!!

【完】

原载于数星|博客

20 声望
0 粉丝
0 条评论
推荐阅读
从零搭建 Node.js 企业级 Web 服务器(零):静态服务
过去 5 年,我前后在菜鸟网络和蚂蚁金服做开发工作,一方面支撑业务团队开发各类业务系统,另一方面在自己的技术团队做基础技术建设。期间借着 Node.js 的锋芒做了不少 Web 系统,有的至今生气蓬勃、有的早已夭折...

乌柏木150阅读 12.3k评论 10

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木66阅读 6.2k评论 16

从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木44阅读 7.4k评论 6

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木33阅读 6.2k评论 9

从零搭建 Node.js 企业级 Web 服务器(五):数据库访问
回顾 从零搭建 Node.js 企业级 Web 服务器(一):接口与分层,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,控制层与服务层实现了业务处理过程,模型层定义了业务实体并以 对象-关系...

乌柏木34阅读 4.6k评论 9

从零搭建 Node.js 企业级 Web 服务器(十三):断点调试与性能分析
Node.js 官方提供了断点调试机制,出于安全性考虑默认为关闭状态,可以通过 node 参数 --inspect 或 --inspect-brk 开启,配合 IDE 能够非常方便地调试代码,本章就上一章已完成的项目 licg9999/nodejs-server-ex...

乌柏木31阅读 3.9k评论 9

从零搭建 Node.js 企业级 Web 服务器(八):网络安全
计算机网络依据 TCP/IP 协议栈分为了物理层、网络层、传输层、应用层,通常基础设施供应商会解决好前三层的网络安全问题,需要开发者自行解决应用层的网络安全问题,本章将着重表述应用层常见的网络安全问题及处...

乌柏木33阅读 5.8k评论 1

20 声望
0 粉丝
宣传栏