加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 经验 > 正文

Hexo建站从入门到精通:本地环境配置、初始化、写作与部署

发布时间:2016-08-26 16:48:03 所属栏目:经验 来源:免费资源部落
导读:Hexo是一个基于node.js的静态博客生成系统,它使用markdown语法来写作,同时支持丰富的自定义标签系统。用户在本地安装Hexo系统并进行写作,通过一条命令,Hexo可以自动生成

四、Hexo精通二:使用Git和rsync部署Hexo

敲黑板!最后一个重点难点内容,如何将public文件夹下的内容发布到服务器上。可供我们选择的有方法:

  • 1.Github Pages。这个服务允许github用户发布静态页面,无限空间流量,适合轻度用户。参考:免费开源Github Pages空间。

  • 2.直接复制。理论上可行的方法,毕竟public下的文件到哪里都能直接变成一个可运行的站点。但是这种方法太蠢了,看似可行,其实蕴含着一大堆问题。

  • 3.Git版本控制系统。官方支持的部署方式之一。利用Git版本控制系统的强大功能,通过s*s*h上传文件。这也是我采用并且下文讲解的方法。

  • 4.Heroku。没有了解过这个方式,参考:Heroku免费云空间512M内存可绑定域名。

  • 5.Openshift,著名厂商Red Hat的PaaS服务,功能十分强大。参考:新版OpenShift空间申请使用教程。

  • 6.rsync。利用强大的同步工具rsync进行同步,这种同步方式只需要用户提供一个能访问bash的Linux用户,并且服务器上安装了rsync软件包,其余一切涉及rsync命令的操作都由hexo自动完成,更加简单。参考:Rsysnc实现VPS主机文件备份同步。

  • 7.FTPsync。直接通过FTP协议进行同步。如果购买了虚拟主机,可以考虑这种方式。然而这个插件写得也很蠢。第一次使用必须自己手动上传所有文件,否则会无限报连接被重置错误(我就不配图了,工作量有点大)。

基于上述方式的优缺点,本文将讲解如何使用Git和rsync进行服务端部署。

4.1 Git版本控制系统

服务端配置。

PS:从此开始home不再代指Hexo安装目录

1.编译安装nginx。执行以下命令下载nginx源码:

编译cloudflare patch过的openssl(如果你不使用HTTPS可以跳过本步骤)

编译安装nginx

执行nginx -V测试是否安装成功。

2.配置Git仓库

我习惯把网站目录放在/home/wwwroot下,因此先建立文件夹:

执行:apt-get install git #Debian系系统,其他发行版参考自己的包管理器,安装Git。执行如下命令,初始化空的Git仓库:git init --bare /home/wwwroot/hexo.git。然后进入该仓库,配置post-receivehooks。

钩子(hooks)是一些在”$GIT-DIR/hooks”目录的脚本, 在被特定的事件(certain points)触发后被调用 。当”git init”命令被调用后, 一些非常有用的示例钩子文件(hooks)被拷到新仓库的hooks目录中; 但是在默认情况下这些钩子(hooks)是不生效的 。

把这些子文件(hooks)的”.sample”文件名后缀去掉就可以使它们生效了。需要关注的是post-receive的钩子,当push操作完成之后这个钩子就会被调用:cd /home/wwwroot/hexo.git/hooks。建立post-receive文件,输入:

赋予可执行权限:chmod +x post-receive,上述所有命令记得替换成你自己的文件路径。之后来配置登陆Git需要的用户。执行:adduser git。要求填写密码和一系列信息。完成后自动建立/home/git主目录以及git用户组。

先确认一下你的S&S%H服务端配置,因为hexo的Git部署不支持使用密码登陆,我们需要生成一对密钥:vim /etc/s*sh/s*shd_config #Debian系系统可用,其他系统参考自己的路径

检查这三行是否被注释以及值是否正确。

如果不正确进行修改,重启s¥s%h:service s*sh restart #服务名不同发行版不同,这是Debian系的名称。然后生成一对s¥s¥h认证密钥:(注意把下方的*去掉)

在生成密钥时,会要求你输入一个加密密码,可以不填写,实现无密码登陆。生成完成后,.s*s*h目录下有id_rsa和id_rsa.pub两个文件,其中.pub文件是公钥文件,存放于服务器,另一个是私钥文件,存放于客户端。两者都是文本文件,可以直接用cat命令读取。将id_rsa下载回本地保存好。

之后配置需要用到。将公钥id_rsa.pub重命名并授予正确的权限:

3.nginx web server配置

首先建立虚拟主机配置文件夹:mkdir /usr/local/nginx/conf/vhost。修改主配置文件:vim /usr/local/nginx/conf/nginx.conf:

修改后文件内容如上,…代表省略内容。然后建立虚拟主机配置文件:

一个最基本的Hexo配置如下:

加入缓存配置:

本站是全站HTTPS,使用Let’s encrypt证书,对HTTPS有大量配置,下面是本站的配置文件:

保存你的配置文件,执行以下命令建立nginx服务并设置开机启动:

完成之后,执行:service nginx start,即可启动nginx。

本地配置

1.本地S*S*H配置。本地s*sh命令也依靠一个配置文件。用户定义配置文件的路径是~/.s*sh/config(PS:这一路径对Windows是可用的,如果你使用Git Bash,这就是为什么我强烈推荐Git Bash的原因)。建立文件夹:  

编辑config文件,写入如下配置:   

然后执行:  

PS:如果可以正常连接,说明我们的Git服务端已经配置成功。为了安全考虑,git用户禁止登陆shell,以root用户登陆服务器,编辑/etc/passwd文件,找到git:x:1002:1002:,,,:/home/git:内容,修改为git:x:1002:1002:,,,:/home/git:/usr/bin/git-shell。git-shell一旦登陆就会自动退出,但又能正常使用Git版本控制功能。(PS:中间的两个数字是UserID和GroupID,可能有所不同,没有影响,不要随意修改)

2.配置部署选项。PS:此节中home代指Hexo站点目录。执行以下命令安装hexo git部署模块:

编辑home/_config.yml文件,找到deploy项目,修改如下:

保存,进入home目录,执行以下命令即可将静态文件发布到服务端了:

至此,一切(woc终于结束了)搭建步骤完成,快访问你的域名看看效果吧~(解析请自行完成)

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读