Hexo部署至云服务器的宝塔面板

Hexo部署至云服务器的宝塔面板

本文为网络转载, 版权属于:Heson

原文链接:https://www.heson10.com/posts/51315.html

简介

hexo 博客部署方法有好多种,github pagesgitee pages(pro)vercelcloudflare page阿里云oss腾讯存储桶等等这些不需要购买服务器的部署方式。一般大部分都用以上方式部署自己的hexo博客,但也有少部分部署在自己服务器的同志。

新手部署服务器最常见的方法就是:直接把本地生成的public中的文件,直接ftp到服务器www根目录,简单粗暴。

还有一种更优雅地方式,那就是直接在服务器上搭建git仓库,hexo三连直接deploy上去(跟搭建在github pages上的方式一样)。

为什么要部署至服务器?

个人感觉手头有闲置的网速较快的服务器,可以尝试部署至服务器。

比如我手头有一个腾讯云香港二区 2核 4GB 5M的服务器。对比了一下我放在又拍云cdn上的主站网速,可以看到:

Hexo部署至云服务器的宝塔面板_第1张图片

这速度可谓不相上下。

相比起github pages的慢、coding pages的抽(移动宽带经常抽),服务器部署还是有一定优势的。

当然,如果域名备案了,手头没有闲置的服务器,还是建议嫖上国内的CDN(又拍云)。

部署教程

老样子,简单说下思路:

  • 服务器安装宝塔面板
  • 创建git仓库,并配置git钩子,自动同步文件到网站目录
  • 配置网站访问设置
  • 本地git deploy设置

准备工作

1.云服务安装宝塔面板

2.本地生成ssh秘钥备用

git config --global user.name "GitHub用户名"
git config --global user.email "GitHub的邮箱"
ssh-keygen -t rsa -C "GitHub的邮箱"

连接服务器终端

宝塔面板用户可直接左侧导航栏终端登录(如图)

Hexo部署至云服务器的宝塔面板_第2张图片

  • 切换到 root 账号
sudo su root

宝塔默认是root账号,注意看图:

hexo-bt-3

  • 安装 git
yum install git

创建 Git 账户

创建 Git 账户并赋予权限

adduser git
chmod 740 /etc/sudoers

编辑 /etc/sudoers 文件

vim /etc/sudoers

i键进入编辑模式,找到root ALL=(ALL) ALL,在其下方加入:

git     ALL=(ALL)     ALL

如图所示:

Hexo部署至云服务器的宝塔面板_第3张图片

输入完成后按esc,再输入:wq,保存退出。

更变/etc/sudoers权限

chmod 400 /etc/sudoers

设置 git 账户密码

sudo passwd git

输入密码,输入的时候是看不到任何显示的,输完回车即可。

切换至 git 用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

同样i进入编辑模式,把之前本地准备的id_rsa.pub文件中的公钥复制进去,按esc后,输入:wq保存。(注意!!! 最后一行要加回车)

更改权限:

chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

本地测试:

ssh -v git@服务器ip地址或域名

不用输密码就成了。

创建git仓库

切换为root用户

sudo su root

创建repo作为仓库目录,并加权限

mkdir /var/repo
chown -R git:git /var/repo
chmod -R 755 /var/repo

创建 hexo 目录作为网站根目录

mkdir /var/hexo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo

创建一个空白的 git 仓库

cd /var/repo
git init --bare hexo.git

编辑一个 Git 钩子

vim /var/repo/hexo.git/hooks/post-receive

i进入编辑模式,添加下面的代码,按esc输入:wq 保存

#!/bin/bash
git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f

更改权限

chown -R git:git /var/repo/hexo.git/hooks/post-receive
chmod +x /var/repo/hexo.git/hooks/post-receive

宝塔网站配置

创建一个网站

Hexo部署至云服务器的宝塔面板_第4张图片

本地 Git deploy 设置

安装git部署插件

npm install hexo-deployer-git --save

在博客根目录配置

deploy:
  type: git
  repo: git@服务器ip或域名:/var/repo/hexo.git
  branch: master

配置完成后,可直接hexo三连到自己的服务器。简单快捷。

如果报错:error: remote unpack failed: index-pack abnormal exit, 删除/var/hexo下的所有文件. 包括.user.ini, 这个文件作用为防跨站, 添加权限之后可以再添加回来.

重新给权限

chown -R git:git /var/repo
chmod -R 755 /var/repo

chown -R git:git /var/hexo
chmod -R 755 /var/hexo

你可能感兴趣的:(服务器,git,github)