一、目标
- 网站迁移到另一台服务器
- 服务器上同时部署多个网站
二、技术要点
本文对腾讯轻量服务器部署hexo及主题(切换网站)拾遗补缺。
主要步骤有:
- 环境
- 服务端:设置git仓库;本地:设置无密码连接git仓库
- 本地:迁移网站,清除有关目录,设置对接git仓库
2.0 环境
- 本地:MacOS
- 服务端:腾讯轻量云服务器 CentOS 7.9 宝塔面板
2.1 服务端:设置git仓库;本地:设置无密码连接git仓库
服务端:
- 检查git:
git --version
,如果没有则安装git:yum install git
- 新建git账户:
useradd git
,如果没有权限,使用sudo useradd git
,然后设置密码:passwd git
;如果提示“is not in the sudoers file”,则使用sudo visudo
,在root ALL=(ALL) ALL
下添加git ALL=(ALL) ALL
,:wq!
保存退出。 - 新增git仓库:
mkdir /home/git/repos/
,然后设置权限:chown -R git:git /home/git/repos/
,如果提示“Operation not permitted”,则使用sudo chown -R git:git /home/git/repos/
。 - 初始化仓库:
cd /home/git/repos/
,git init --bare zsjs.git
;初始化第二个仓库:git init --bare gk.git
。 - 分别设置两个仓库的钩子:
cd zsjs.git/hooks/
,vi post-update
,输入以下内容:1
2
git --work-tree=/www/wwwroot/zsjs --git-dir=/home/git/repos/zsjs.git checkout -f:wq!
保存退出。chmod +x post-update
,设置钩子可执行。同理,设置第二个仓库的钩子:cd gk.git/hooks/
,vi post-update
,输入以下内容:1
2
git --work-tree=/www/wwwroot/gk --git-dir=/home/git/repos/gk.git checkout -f:wq!
保存退出。chmod +x post-update
,设置钩子可执行。 - 新建网站:宝塔面板,网站,添加网站,输入网站域名,设置网站目录,目录与上面git钩子对应,即
/www/wwwroot/zsjs
和/www/wwwroot/gk
。
本地:无密码连接git仓库
- 本地生成密钥:`ssh-keygen -t rsa -C “
- 将id_rsa.pub中的内容复制到服务端git账户的
/home/git/.ssh/authorized_keys
中 - 测试连接:
ssh git@[服务端ip地址]
2.2 本地:迁移网站,清除有关目录,设置对接git仓库
2.2.1 迁移网站
- 本地zsjs目录:设置
_config.yml
:1
2
3
4deploy:
type: git
repo: git@[服务端ip地址]:/home/git/repos/zsjs.git
branch: master - 本地zsjs:删除
.deploy_git
和zsjs
目录 - 本地zsjs:
hexo clean
,hexo g
,hexo d
,将网站部署到服务端。
2.2.2 新建网站
- 本地新建网站目录:
hexo init gk
,cd gk
,npm install
; - 本地新建网站gk目录:设置
_config.yml
,同上; - 本地gk:
hexo clean
,hexo g
,hexo d
,将网站部署到服务端。