部署环境与准备

  1. 环境

    本机Windows10操作系统

    阿里云/腾讯云Centos7.7服务器

  2. 准备

    Hexo 本地博客

    Xshell 连接到你的服务器

阿里云服务器配置Git

安装依赖库

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

安装编译工具

yum install gcc perl-ExtUtils-MakeMaker package

安装git

git version         # 查看git的版本

yum remove git -y	# 删除git

cd /usr/local	 	# 切换到要下载的目录 

wget https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz #下载git(自带的版本较低)

tar -zxvf git-2.28.0.tar.gz 	# 解压到当前文件夹

编辑并安装到指定的目录

cd git-2.28.0    #进入到git解压的文件夹

# 不必先在local下面创建git文件夹,不然编辑会出现文件夹名称重复错误!
make prefix=/usr/local/git all    #编译源码到指定路径文件夹下

make prefix=/usr/local/git install    #安装到指定路径文件夹下

配置git的环境变量

echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
source /etc/bashrc	# 刷新环境变量让他生效
git --version		# 查看git版本

创建git用户并且修改权限

adduser jiangpeng		# 创建用户
passwd	jiangpeng		# 设置密码
chmod 740 /etc/sudoers	# 修改文件夹权限
vim /etc/sudoers		# 编辑文件

root    ALL=(ALL)       ALL		# 在root下面新增一行  在文件的100行左右
jiangpeng  ALL=(ALL)    ALL		# 允许我们创建的用户拥有root权限

chmod 600 /etc/sudoers	# 再把权限改回来

本地Windows10使用Gitbash创建密钥

ssh-keygen -t rsa		# 在本地创建ssh秘钥(创建的位置为当前用户.ssh文件夹里)

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

将本地创建的id_rsa.pub文件中所有内容全部复制到阿里云服务器中

su jiangpeng		# 切换用户
mkdir ~/.ssh		# 创建文件夹
vim ~/.ssh/authorized_keys	# 编辑文件(将秘钥内容全部复制到此文件中)

本地测试

ssh -v jiangpeng@服务器ip(ip就是你服务器的公网ip)		# 让你输入密码说明测试成功

阿里云服务器网站配置

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

su root			# 切换root用户
mkdir /home/hexo	
chown jiangpeng:jiangpeng -R /home/hexo		# 这里用之前自己创建的用户名(我创建的是jiangpeng)

安装Nginx

yum install -y nginx			 # yum一键安装(默认配置文件路径为 /etc/nginx/nginx.conf)
systemctl start nginx.service    # 启动服务

修改Nginx配置文件

vim /etc/nginx/nginx.conf		 # 编辑配置文件(:set nu设置行号) 

38 server { 
39 		listen 80; 
40 		listen [::]:80; 
41		server_name jiangpeng.life; # 这里写你的域名或者ip都可以,写域名,你的域名要绑定服务器ip
42 		root /home/hexo; # 网站放的目录

重启服务器

systemctl restart nginx.service		# 重启nginx服务

新建git仓库并授权

su root		# 切换到root用户
cd /home/jiangpeng		# 到你自己创建的用户文件夹下
git init --bare blog.git	# 创建仓库
chown jiangpeng:jiangpeng -R blog.git # 授权

同步网站根目录

vim blog.git/hooks/post-receive

#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/jiangpeng/blog.git checkout -f

修改权限

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

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

deploy:
  type: git
  repository: jiangpeng@阿里云服务器ip:/home/jiangpeng/blog.git    #用户名@服务器Ip:git仓库位置
  branch: master

在本机Windows的Gitbash部署

hexo clean		# 清理缓存

hexo g -d		# 部署(报错看下面,不报错省略)

# 如果hexo大于3.0版本的可能是因为缺少hexo-deployer-git(Hexo 3.0版本以后分开了),安装一下就可以了。
npm install hexo-deployer-git --save # 安装好以后,重新部署,就可以访问了。

常见报错

git-upload-pack: 未找到命令

bash: git-upload-pack: command not found
fatal: Could not read from remote repository

解决办法

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

git-receive-pack: 未找到命令

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

解决办法

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

无法远程连接获取

fatal: Could not read from remote repository

解决办法

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

key出错

Host key verification failed

解决办法

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

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐