hexo部署服务器

部署环境

  • 本地环境

    • Windows10(64bit)
    • 环境:gitNode.jshexo
    • 生成本地静态网站
  • 服务器环境

    • 腾讯云主机(CentOS 7.5 64bit)
    • 环境:gitNginx创建 git 用户
    • 使用 git 自动化部署发布

    服务器配置

    连接服务器:

    ssh -v root@ip
    

    1. 安装 Git (源码包安装)

    因为 yum 源仓库的 Git 版本更新不及时,所以采用源码包进行安装。
    

1.1 安装依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install  gcc perl-ExtUtils-MakeMaker

通过命令 git --version 可以看到,Git 当前的版本号为 1.8.3.1,太过于陈旧,所以需要先把它移除了。

1.2 卸载旧版本的 Git

yum remove git

1.3 下载并解压

cd /usr/local/src   // 选择文件保存位置
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.0.tar.gz   // 下载链接
tar -zxvf git-2.39.0.tar.gz   // 解压

注:

当我们使用 wget命令下载不安全的https 域名下的内容时会提示如下内容:

 cannot verify pkg.jenkins.io's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’
 Issued certificate has expired. To connect to pkg.jenkins.io insecurely, use `--no-check-certificate'.

修复:

sudo yum install -y ca-certificates

版本以及之后版本可到此进行查看。解压后,会在当前目录下自动生成一个名为 git-2.39.0 的文件夹,里面就是解压出来的文件。可通过命令 ls 进行查看。

1.4 编译安装

cd git-2.39.0   // 进入文件夹
make prefix=/usr/local/git all  // 编译源码
make prefix=/usr/local/git install  // 安装至 /usr/local/git 路径

打开环境变量配置文件

vim /etc/profile

在文件底部添加以下配置

PATH=$PATH:/usr/local/git/bin   // git 的目录
export PATH

刷新环境变量

source /etc/profile

最后再使用 git --version 查看版本号,已经为 2.39.0

在这里插入图片描述

2. git 新用户及配置

2.1 创建 git 用户

adduser y.lin
passwd git
chmod 740 /etc/sudoers
vim /etc/sudoers

在英文输入法下,按Esc然后按shift和冒号,输入set nu就可以显示行号

找到以下内容

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

在它下面添加一行

y.lin ALL=(ALL) ALL

在这里插入图片描述

保存并退出,将权限修改回来

chmod 400 /etc/sudoers

2.2 密钥配置

本地中,使用 Git Bash/powershell 创建密钥

# 本地 windows 
ssh-keygen -t rsa

在这里插入图片描述

切换至 y.lin 用户,创建 .ssh 文件夹以及 authorized_keys 文件并将本地的 id_rsa.pub 文件内容粘贴到里面

su y.lin
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

修改权限

cd ~
chmod 600 .ssh/authorzied_keys
chmod 700 .ssh

2.3 测试

在本地 Windows 上,使用 Git Bash 测试是否能连接上服务器

ssh -v y.lin@ip

其中 SERVER 为服务器 ip 地址。若出现以下错误提示,检查本地密钥位置是否存在 known_hosts 文件,将其删除重新测试。测试结果为,不需要密码直接进入

2.4 创建网站目录

创建一个目录用于作为网站的根目录

su root
mkdir /home/hexo    # 此目录为网站的根目录

赋予权限

chown y.lin:y.lin -R /home/hexo

3. 安装配置 Nginx

注意需要 root 权限
yum install -y nginx    // 安装
systemctl start nginx.service     // 启动服务

使用 yum 安装的 nginx 在新版的 CentOS 中,需要使用 systemctl,而不是直接使用 service start nginx
此时通过服务器的公网 IP 地址访问,可以看到 nginx 的欢迎页面,表示安装成功,如下图

3.2 配置 Nginx

使用 nginx -t 命令查看位置,一般为 /etc/nginx/nginx.conf
使用 vim /etc/nginx/nginx.conf 命令进行编辑,修改配置文件如下:

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  yelin.fun;    # 修改为自己的域名
    root         /home/hexo;    # 修改为网站的根目录

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

在这里插入图片描述

root 处的网站目录,需要自己创建,也就是部署上传的位置

注意使用 nginx -t 命令检查配置文件的语法是否出错。然后使用 systemctl restart nginx.service 命令重启服务即可

4. 自动化部署

4.1 建立 git 裸库

创建一个裸仓库,裸仓库就是只保存 git 信息的 Repository, 首先切换到 git 用户确保 git 用户拥有仓库所有权,一定要加 --bare,这样才是一个裸库.

su root
cd /home/git   # 在 git 用户目录下创建
git init --bare blog.git

这时,git 用户的 ~ 目录下就存在一个 blog.git 文件夹,可使用 ls 命令查看。再修改 blog.git 的权限

chown git:git -R blog.git

4.2 使用 git-hooks 同步网站根目录

在这使用的是 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

本地配置

在本地中,和部署到 pages 服务一样,需要先 hexo g 命令生成静态文件,通过 hexo s 命令能够正常进行本地访问,并且确保已经安装了 hexo-deployer-git

配置 config.yml

hexo 根目录下的 _config.yml 文件,找到 deploy

deploy:
    type: git
    repo: git@SERVER:/home/git/blog.git     # 用户名@服务器Ip:git仓库位置
    branch: master      # 分支

之后按照正常的流程进行部署即可

hexo clean
hexo g
hexo d

hexo 根目录下的 _config.yml 文件,找到 deploy

deploy:
    type: git
    repo: git@SERVER:/home/git/blog.git     # 用户名@服务器Ip:git仓库位置
    branch: master      # 分支

之后按照正常的流程进行部署即可

hexo clean
hexo g
hexo d

Nginx 服务器 SSL 证书安装部署

在SSL证书管理下载nginx证书
在这里插入图片描述
在这里插入图片描述
将文件上传服务器的 /etc/nginx/conf 目录
在这里插入图片描述
编辑 Nginx 根目录下的 nginx.conf 文件
在这里插入图片描述
通过执行以下命令验证配置文件问题

nginx -t

在这里插入图片描述
成功

重载nginx

nginx -s reload

即可重新访问网页

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Y.lin

别急,好运都藏在努力里~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值