Hexo部署到腾讯云或阿里云

部署环境与准备

1.环境

本地 Windows10 操作系统

腾讯云 Cenots7.6 服务器

2.准备
Hexo 本地博客

Xshell 链接到你的服务器

云服务器配置 Git

配置步骤

1.安装依赖库

1
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

2.安装编译工具

1
yum install gcc perl-ExtUtils-MakeMaker package

3.查看 git 的版本
git version 4.删除 git

1
yum remove git -y

5.下载解压最新版

1
2
3
cd /usr/local/src #下载的目录
wget https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz #下载最新版
tar -zxvf git-2.28.0.tar.gz #解压到当前文件夹

6.编辑并安装

1
2
3
cd git-2.28.0    #进入文件夹
make prefix=/usr/local/git all #编译源码
make prefix=/usr/local/git install #安装路径

7.配置 git 的环境变量

1
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

8.刷新环境变量

1
source /etc/bashrc

9.查看版本号

1
git --version

10 创建 git 用户并且修改权限

1
2
3
4
5
6
7
adduser qiqi
passwd qiqi
chmod 740 /etc/sudoers vim /etc/sudoers root

在这里加入:
root ALL=(ALL) ALL
qiqi ALL=(ALL) ALL

11.本地 windows10 使用 Gitbash 创建密钥

1
ssh-keygen -t rsa

12.将本地创建 id_rsa.pub 中文件复制

1
2
3
su qiqi
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

13.本地测试

1
ssh -v qiqi@服务器ip

出现 Welcome to Alibaba Cloud Elastic Compute Service !则代表部署成功

云服务器网站配置

1.创建网站目录并且设置权限

1
2
3
su root
mkdir /home/hexo
chown qiqi:qiqi -R /home/hexo

2.安装 Nginx

1
2
yum install -y nginx
systemctl start nginx.service #启动服务

3.修改 Nginx 配置文件

1
2
3
4
5
6
7
vim /etc/nginx/nginx.conf

38 server {
39 listen 80 default_server;
40 listen [::]:80 default_server;
41 server_name 47.110.157.196; #域名或ip地址
42 root /home/hexo; #网站目录

4.重启服务器

1
systemctl restart nginx.service

5.建立 git 仓库

1
2
3
4
su root
cd /home/qiqi
git init --bare blog.git
chown qiqi:qiqi -R blog.git

6.同步网站根目录

1
2
3
4
5
vim blog.git/hooks/post-receive

#添加以下内容
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/qiqi/blog.git checkout -f

7.修改权限

1
chmod +x /home/qiqi/blog.git/hooks/post-receive

8.在 windows10 本地 hexo 目录修改_config.yml 文件

1
2
3
4
deploy:
type: git
repository: qiqi@47.110.157.196:/home/qiqi/blog.git #用户名@服务器Ip:git仓库位置
branch: master

9.在本机 gitbash 部署

1
2
hexo clean
hexo g -d

常见报错

  1. git-upload-pack: 未找到命令
1
2
bash: git-upload-pack: command not found
fatal: Could not read from remote repository.

解决方法

1
sudo ln -s  /usr/local/git/bin/git-upload-pack  /usr/bin/git-upload-pack

2.git-receive-pack: 未找到命令

1
2
bash: git-receive-pack: command not found
fatal: Could not read from remote repository.

解决方法

1
sudo ln -s /usr/local/git/bin/git-receive-pack  /usr/bin/git-receive-pack

3.无法远程连接获取

1
fatal: Could not read from remote repository.

解决方法

1
重试或者 删掉本地ssh公钥重新上传至服务器

4.key 出错

1
Host key verification failed.

解决方法

1
ssh-keygen -R 你要访问的IP地址