使用nginx和git上传使用hexo搭建好的博客框架

发表于 2019-12-09更新于 2019-12-09

使用nginx和git上传使用hexo搭建好的博客框架

1、介绍

​ 一开始我是直接搭建在了github上,但是我看着文档优化了很久,访问速度都不是很如意,所以我就买了一台服务器试着搭建到服务器上。

​ 期间遇到了很多坑,不过好在没放弃,最后终于成功了,一种激动感迎面而来。

​ 使用hexo搭建到github我借鉴的这个<https://zhuanlan.zhihu.com/p/26625249> ,如果你也感兴趣可以试着搭建。

配图一张,可以理解一下,下面我会详细介绍我搭建的详细步骤

通过上图,我们可以看得到,整个流程就是在本地通过 hexo generate 生成渲染博客的静态文件,然后通过 hexo deploy 把静态文件 push到服务器上我们自己创建的git仓库内。然后我们通过git仓库内的hooks钩子函数,同步到我们服务器要显示的网站根目录。

最后通过我们的服务器访问。

2、下面我们开始搭建


第一步:git环境搭建(本地)

  1. git 安装 官网下载

  2. 生成ssh认证,执行如下命令

    git config –global user.name “username” (username为你的用户名)

    git config –global user.email “your email” (在这里输入你的邮箱)

    ssh-keygen -t rsa -C “刚才配置的邮箱地址”

    输入cd ~/.ssh

    打印 cat id_rsa.pub 就成功了

    生成的ssh认证在C:\Users\yourname\.ssh

服务器配置


我们需要先搭建git私库

1.登陆到远程服务器 这里使用xshell 6

2.查询有没有git

输入 git –version 有就不用 没有就需要安装

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git

3.创建用户并配置其仓库

useradd git 创建一个git用户

passwd git 设置密码

su git 切换用户(重要)

然后我们 cd /home/git/

mkdir -p projects/blog 这个是我们要使用服务器显示的目录

mkdir repos && cd repos

git init –bare blog.git 在repos目录里创建一个裸露的仓库

cd blog.git/hooks 进如到这个git仓库的hooks目录

vi post-receive 创建 hook 钩子函数 为什么需要创建,开头已经说过了

在里面输入

git –work-tree=/home/git/projects/blog –git-dir=/home/git/repos/blog.git checkout -f

前面 work-tree=是部署的目录,也就是显示的目录 后面的是git仓库的目录 通过这句命令,我们就可以在每次push完成后把部署的目录更新到博客。

然后设置这个文件的可执行权限

1
chmod +x post-receive

输入exit 退出一级

然后改变你的git仓库blog.git目录拥有者为git用户

1
chown -R git:git /home/git/repos/blog.git

4.测试git仓库是否可用,在本地找一个空白文件夹右键 使用Git Bash Here

1
git clone git@server_ip:/home/git/repos/blog.git

这里的server_ip指你的服务器地址 能够拉取成功,证明git仓库搭建成功

5.建立ssh信任关系(本地电脑)

1
ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip

把本地的ssh密钥复制到服务器上

1
ssh git@server_ip

然后本地右键测试能否登陆(这时候登陆是不需要密码的)

6.然后我们需要禁用git用户的shell登陆权限让git用户不能通过shell登陆 这时候我们需要编辑/etc/passwd文件来实现

1
vi /etc/passwd
1
2
3
4
将原来的
git:x:1000:1000::/home/git:/bin/bash
修改成
git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell

查看文件 修改完 按下Esc键 然后shift + : 输入exit退出


首先介绍一下Nginx

Nginx是一款轻量级Web服务器、也是一款反向代理服务器,Nginx可直接支持Rails和PHP的程序、可作为HTTP反向代理服务器、可作为负载均衡服务器、可作为邮件代理服务器、帮助实现前端动静分离。

3、下面安装nginx并配置nginx服务


1.下载nginx压缩包 nginx

这里我们下载stable version 稳定版nginx-1.12.1 pgp
我们这里使用Xftp 6来管理 linux系统里的文件

2.打开Xftp 6

这里我放在itme目录下

1
2
3
cd /item   进入item目录
tar -xzf nginx-1.14.0.tar.gz 使用这行命令解压nginx
cd nginx-1.14.0

3.安装编译环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
yum update
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

添加用户和组
groupadd www
useradd -g www www

配置文件
./configure
编译并安装
make && make install

验证一下装好了吗
/usr/local/nginx/sbin/nginx -V

然后我们设置一下软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

nginx -t 查看是否成功
nginx 启动 去浏览器查看 你的server_ip 默认是80端口

4.修改配置文件

1
2
3
4
5
6
nginx -s stop  停止nginx
cd /usr/local/nginx/conf
vi nginx.conf 修改配置文件
如下图 把user修改为root
下面访问地址给到需要展示的文件夹
nginx -s reload 然后平滑启动nginx服务

到这里我们就完成了nginx的配置工作

4、下面配置hexo上传地址


配置hexo本地_config.yml文件

hexo命令

命令简写
hexo n “我的博客” == hexo new “我的博客” #新建文章
hexo g == hexo generate #生成
hexo s == hexo server #启动服务预览
hexo d == hexo deploy #部署

使用 最后使用hexo d推送到服务器

最后 终于结尾了

我也是一个小白,有什么错误的话欢迎指正