hexo搭建博客(四)
title: 使用hexo搭建博客(四)
date: 2020-02-04 12:18:25
tags: hexo,blog
categories: 教程
前言
承接上篇博客,上篇博客中我们在Github上部署成功,但Github上的访问速度在国内较慢,而且免费提供的资源有限,不适于长时期的博客运作,所以在此篇文章中,来说一下,我部署在云服务器的过程以及遇到的问题
首先我们了解一下,hexo利用git更新的流程,部署在Github上和部署在云服务器上没有特别大的本质区别
整个流程就是本地将markdown文件渲染成静态文件,然后Git推送到服务器的r代码仓库,让服务器通过钩子(hook)同步网站根目录,再利用nginx托管这些静态资源,就可以实现访问
环境
本地环境
Windows10,在本地已经装好了Git,nodejs,hexo,并且在本地已经成功的能调试出来hexo
服务器环境
华为的ECS(centos7)
已装好了git,nodejs,以及编译好了nginx(编译这玩意儿有些慢,我编译的时候大概花了将近30分钟)
本地机器配置
配置**
在终端使用git bash生成公匙,命令如下:
ssh-****** -t rsa
然后一路回车,
就会在如图示的文件路径下生成一个**文件id_rsa.pub
这个**文件我们后面会用到,这个**相当于我们访问服务器的钥匙
云服务器配置
Git,nodejs,Nginx等安装
具体安装过程可自行百度
创建git新用户以及进行配置
创建git新用户
adduser git #加入git用户
passwd git #配置你的密码
chmod 740 /etc/sudoers/ #修改git的sudo使用权限为只读
vim /etc/sudoers #编辑sudoers
打开sudoers,找到以下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在他的下面加入以下内容
git ALL=(ALL) ALL
然后wq保存,并且将权限修改回来
chmod 400 /etc/sudoers
将公钥配置到服务器上
就是刚才我们生成的那个文件
将该文件内容复制,在云服务器端,切换至刚建好的git用户下,创建**.ssh文件和和authorized_keys**文件
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
然后修改权限
cd ~
chmod 600 .ssh/authorzied_keys # 将文件设置为可读可写
chmod 700 .ssh #将该文件夹设置为可读可写可执行(访问)
测试git链接
切换到本地机器在本地机器上测试是否能连接到你的远程Git用户
ssh -v aaa@qq.com_IP
测试成功会出现如下:
如果测试不成功,看看具体的输出信息,通常是公钥没配置好的原因,不用担心,把原来生成的公钥删了,try again 就欧克了
创建网站根目录
创建网站的根目录目的是为了让nginx进行托管hexo 生成的静态文件
创建一个目录用于作为网站的根目录,切换到root用
su root
mkdir /home/hexo # 此目录为网站的根目录
然后变更该目录的所有者
chown git:git -R /home/hexo
配置nginx
安装过程自行度娘就好,编译好nginx后进入nginx的配置文件
vim conf/nginx.conf
server{
listen 8081; #监听8081端口
server_name 139.159.245.212; #你的服务器名,通常是域名,如果是域名,你就需要监听80端口
root /home/hexo; #网站的根目录,根据自己所建自行修改
location / {
}
#access_log logs/access.log mylog;
error_page 404 /404.html; #配置40x页面
location = /40x.html {
}
error_page 500 502 503 504 /50x.html; #配置50x页面
location = /50x.html {
}
}
注意使用 nginx -t
命令检查配置文件的语法是否出错。然后使用 systemctl restart nginx.service
或者
在编译好的nginx目录下使用sbin/nginx -s reload
命令重启服务即可
实现自动化部署
建立git裸库(就是空的)
在root用户下
su root
cd /home/git # 在 git 用户目录下创建
git init --bare blog.git
这时,git
用户的 ~
目录下就存在一个 blog.git
文件夹,可使用 ls
命令查看。再修改blog.git
的所有者
使用钩子同步网站根目录
在这使用的是 post-receive
这个钩子,当 git
有收发的时候就会调用这个钩子。 在 blog.git
裸库的 hooks 文件夹中,新建 post-receive
文件。
vim blog.git/hooks/post-receive
填入以下内容,其中 /home/hexo
为网站目录,根据自己的填入,保存退出。
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
该钩子的意思是当本地有提交到服务器时,会将文件放在/home/hexo下
-f
这个参数如果在多人协作的博客中可能会引发不好的结果,因为他是强制更新的意思,会将本地版本覆盖掉远程服务器的版本,但是是个人的博客系统就无所谓了
保存后,要赋予这个文件可执行权限。
chmod +x /home/git/blog.git/hooks/post-receive
本地机器中部署至服务器
在本地中,和部署到 github
服务一样,需要先 hexo g
命令生成静态文件,通过 hexo s
命令能够正常进行本地访问,并且确保***已经安装***了 hexo-deployer-git
。
配置Hexo
hexo 根目录下的 _config.yml
文件,找到 deploy
。
deploy:
type: git
repo: aaa@qq.com:/home/git/blog.git # 填写你的服务器地址 将SERVER替换掉
branch: master # 分支
之后按照正常的流程部署,也可以在hexo项目中添加脚本scripts,脚本内容如下图所示(在package.json文件中添加)
测试自动化部署
然后用hexo d 即可推送到远端服务器 然后可以用自己服务器ip访问自己的博客网站了
本次分享就到这儿,有任何问题欢迎留言,我会在第一时间,进行回复!!
推荐阅读
-
独立博客怎么做,快速搭建独立博客教程分享
-
独立博客怎么做,快速搭建独立博客教程分享
-
Scala入门(四):文件操作 博客分类: scala scala入门
-
Scala入门(四):文件操作 博客分类: scala scala入门
-
win的linux虚拟机中通过docker搭建wordpress博客,并在win中通过nginx反向代理对外提供服务
-
Linux服务器配置——搭建SVN服务器 博客分类: Linux svnlinux
-
redis3.0集群搭建所需软件redis-3.2.1.gem rubygems-2.4.8.tgz 博客分类: 分享 redis-3.2.1.gemrubygems-2.4.8.tgzredis3.0集群
-
redis3.0集群搭建所需软件redis-3.2.1.gem rubygems-2.4.8.tgz 博客分类: 分享 redis-3.2.1.gemrubygems-2.4.8.tgzredis3.0集群
-
环境搭建 博客分类: Java SE A
-
hexo搭建博客(三)