一、目标

  • 网站迁移到另一台服务器
  • 服务器上同时部署多个网站

二、技术要点

本文对腾讯轻量服务器部署hexo及主题(切换网站)拾遗补缺。

主要步骤有:

  1. 环境
  2. 服务端:设置git仓库;本地:设置无密码连接git仓库
  3. 本地:迁移网站,清除有关目录,设置对接git仓库

2.0 环境

  • 本地:MacOS
  • 服务端:腾讯轻量云服务器 CentOS 7.9 宝塔面板

2.1 服务端:设置git仓库;本地:设置无密码连接git仓库

服务端:

  1. 检查git:git --version,如果没有则安装git:yum install git
  2. 新建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!保存退出。
  3. 新增git仓库:mkdir /home/git/repos/,然后设置权限:chown -R git:git /home/git/repos/,如果提示“Operation not permitted”,则使用sudo chown -R git:git /home/git/repos/
  4. 初始化仓库:cd /home/git/repos/git init --bare zsjs.git;初始化第二个仓库:git init --bare gk.git
  5. 分别设置两个仓库的钩子:cd zsjs.git/hooks/vi post-update,输入以下内容:
    1
    2
    #!/bin/bash
    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
    #!/bin/bash
    git --work-tree=/www/wwwroot/gk --git-dir=/home/git/repos/gk.git checkout -f
    :wq!保存退出。chmod +x post-update,设置钩子可执行。
  6. 新建网站:宝塔面板,网站,添加网站,输入网站域名,设置网站目录,目录与上面git钩子对应,即/www/wwwroot/zsjs/www/wwwroot/gk

本地:无密码连接git仓库

  1. 本地生成密钥:`ssh-keygen -t rsa -C “
  2. 将id_rsa.pub中的内容复制到服务端git账户的/home/git/.ssh/authorized_keys
  3. 测试连接:ssh git@[服务端ip地址]

2.2 本地:迁移网站,清除有关目录,设置对接git仓库

2.2.1 迁移网站

  1. 本地zsjs目录:设置_config.yml:
    1
    2
    3
    4
    deploy:
    type: git
    repo: git@[服务端ip地址]:/home/git/repos/zsjs.git
    branch: master
  2. 本地zsjs:删除.deploy_gitzsjs目录
  3. 本地zsjs:hexo cleanhexo ghexo d,将网站部署到服务端。

2.2.2 新建网站

  1. 本地新建网站目录:hexo init gkcd gknpm install
  2. 本地新建网站gk目录:设置_config.yml,同上;
  3. 本地gk:hexo cleanhexo ghexo d,将网站部署到服务端。