数据迁移

最近几天一直在着手网站的迁移部分,之前是部署到github上,本地同步到github相对来说比较简单,按着步骤来,几下就搞定了,但是在折腾同步到VPS上的时候,着实不省心。

至于为什么要部署在VPS上,每个人都会有每个人的看法,个人是觉得,VPS上可以方便折腾(并不是说github上就不行),贴上部分配置的步骤,如下:

本地环境搭建

本地环境需要node.js hexo git

安装node.js

在 Node.js 官网下载最新版,一路默认安装。

安装 Git

Git for Windows ,一路默认安装。

安装 Hexo

npm install -g hexo
hexo init
npm install
hexo d -fg
hexo serve

本地 Git 配置

$git init
$git add .
$git commit -m "Initial commit"

VPS环境搭建

Nginx

安装EPEL依赖包
yum -y install epel-release
安装nginx
yum -y install nginx
启动nginx
service nginx start
开机启动nginx
systemctl enable nginx

接下来配置虚拟主机,相关代码就不需要贴出了

git部署

原理是本地push到VPS的git仓库,使用gitclone取出仓库的内容再复制到/var/www/example.com网站目录下

生成脚本

cd ~
mkdir repos && cd repos
mkdir example.com.git && cd example.com.git
git init --bare
cd hooks
touch post-receive
vi post-receive

使用下面的脚本,注意替换前四行里面的内容

编辑脚本

#!/bin/bash -l
GIT_REPO=$HOME/repos/example.com.git
TMP_GIT_CLONE=$HOME/tmp/git/example.com
PUBLIC_WWW=/var/www/example.com   `这里是nginx配置的网站目录`

rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
cd ~
cd ${PUBLIC_WWW}
hexo d -fg
cd ~
exit

更改脚本权限

chmod +x post-receive
cd ~
service nginx restart

本地git链接

git remote add example root@IP:repos/example.com.git
git push example master

PS:需要输入VPS密码

本地同步

Git bash到本地hexo目录 执行hexo d -g 即可完成同步

经过很长时间的折腾,终于是解决了数据的迁移问题,期间Rebuild 无数,add/delete无数,让我对数据恢复又了解了许多!

推荐一部电影《人工智能》,看到片尾的时候,始终不能忍住眼泪。

参考文章:

  1. HOW TO INSTALL AND CONFIGURE NGINX ON CENTOS 7
  2. How-to Install Git on CentOS 7
  3. How to install own git server with ssh and http access by using
    gitolite and gitweb in CentOS
  4. Setting up Git on Centos
  5. Git on the Server – Setting Up the Server
  6. 如何在 VPS 上搭建 Hexo 博客并使用 Git Hooks 更新?