Hexo部署到阿里云/腾讯服务器

服务器环境

  1. 系统:Ubuntu 20.04.1
  2. 宝塔面板
  3. Ubuntu自带git环境所以无需安装。

服务器配置

添加用户,这里会提示输入密码,输入两次即可。其他的信息可以不填。直接回车。

1
adduser git

设置 /etc/sudoers 文件权限

1
chmod 740 /etc/sudoers

编辑 /etc/sudoers

1
vi /etc/sudoers

输入 i 进入 insert 模式 ,找到 root ALL=(ALL:ALL) ALL ,在其下方加入一行 git ALL=(ALL:ALL) ALL

1
git ALL=(ALL:ALL) ALL	# 按 ESC ,输入 :wq ,保存文件

变更 /etc/sudoers 文件权限

1
chmod 400 /etc/sudoers

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

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

输入 i 进入 insert 模式,将电脑本地的 id_rsa.pub 公钥复制进去 (可以和 Github 密钥公用一个或者重新建一个),按 ESC ,输入 :wq ,保存文件。

配置权限

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

切换 root 账户

1
su root

创建 git 仓库

1
2
3
4
5
mkdir /var/repo		# 新建文件夹
chmod -R 755 /var/repo # 设置权限
cd /var/repo
git init --bare hexo.git
chown -R git:git /var/repo # 为git用户设置权限

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

1
2
3
mkdir /www/wwwroot/hexo			# 新建文件夹
chown -R git:git /www/wwwroot/hexo # 为git用户设置权限
chmod -R 755 /www/wwwroot/hexo # 设置权限

因为 Linux 系统下,Git 仓库文件不会显示存在,钩子就是说把 hexo.git 这个仓库的文件内容显示在 /www/wwwroot/hexo目录下

编辑 Git 钩子

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

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

1
git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/hexo.git checkout -f

更改权限

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

配置本地部署

1
2
3
4
5
6
deploy:
- type: git
repository:
tecent: git@IP或者是域名:/var/repo/hexo.git
# tecent随便命名。域名必须要先绑定ip,ip和域名只需要填写一个
branch: master

配置宝塔

宝塔面板中添加新站点。注意根目录设置!!!,根目录为/www/wwwroot/hexo

参考教程