Hexo部署至云服务器的宝塔面板-Hexo迁移服务器
ChrisXie Lv5

使用Hexo有一段时间了,但是服务器到期续费比较贵所以需要把网站迁移到新的服务器。看了之前Hexo搭建方式和资料后发现对应服务端部署网站是差不多的。

服务器安装宝塔面板

购买服务器后都有部署宝塔,对应很多环境搭建比较高效

创建git仓库,并配置git钩子,自动同步文件到网站目录

登录SSH 却换到root账号

1
sudo su root

安装 git

1
yum install git

创建 Git 账户并赋予权限

1
2
adduser git
chmod 740 /etc/sudoers

编辑 /etc/sudoers 文件

1
vim /etc/sudoers

i键进入编辑模式,找到root ALL=(ALL) ALL,在其下方加入:

1
git     ALL=(ALL)     ALL

如图所示:

如果找不到按i键进入输入状态再往下拉;输入完成后按esc,再输入:wq,保存退出。
更变/etc/sudoers权限

1
chmod 400 /etc/sudoers

设置 git 账户密码

1
sudo passwd git

输入密码,输入的时候是看不到任何显示的,输完回车即可。
切换至 git 用户,创建 /.ssh 文件夹和 /.ssh/authorized_keys 文件

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

同样i进入编辑模式,把之前本地准备的id_rsa.pub文件中的公钥复制进去,按esc后,输入:wq保存。(注意!!! 最后一行要加回车)更改权限:

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

本地测试:

1
ssh -v git@服务器ip地址或域名

创建git仓库

切换为root用户

1
sudo su root

创建repo作为仓库目录,并加权限

1
2
3
mkdir /var/repo
chown -R git:git /var/repo
chmod -R 755 /var/repo

创建 hexo 目录作为网站根目录(使用宝塔大部分设置在/www/wwwroot/)

1
2
3
mkdir /www/wwwroot/hexo
chown -R git:git /www/wwwroot/hexo
chmod -R 755 /www/wwwroot/hexo

创建一个空白的 git 仓库

1
2
cd /var/repo
git init --bare hexo.git

编辑一个 Git 钩子

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

i进入编辑模式,添加下面的代码,按esc输入:wq 保存(需要注意--work-tree=/www/wwwroot/hexo是网站目录)

1
2
#!/bin/bash
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

宝塔网站配置

修改新的配置地址

本地 Git deploy 设置

安装git部署插件(电脑端本地git客户端 输入)

1
npm install hexo-deployer-git --save

在博客根目录配置 /hexo-blog/themes/xxx/_config.yml

1
2
3
4
deploy:
type: git
repo: git@服务器ip或域名:/var/repo/hexo.git
branch: master

如果报错:error: remote unpack failed: index-pack abnormal exit, 删除/www/wwwroot/hexo/下的所有文件. 包括.user.ini, 这个文件作用为防跨站, 添加权限之后可以再添加回来.

重新给权限

1
2
3
4
5
6
deploy:
chown -R git:git /var/repo
chmod -R 755 /var/repo

chown -R git:git /www/wwwroot/hexo
chmod -R 755 /www/wwwroot/hexo

在删除hexo目录或者.user.ini 报错chown: changing ownership of ‘/www/wwwroot/blog/.user.ini’: Operation not
可以输入下方解除权限即可删除

1
chattr -i /home/wwwroot/hexo/.user.ini

 评论
相关文章
标签云 更多