博客的架构
Hexo部署流程
- 首先本地
hexo generate构建生成一个Public文件夹,Public里就是打包生成的静态HTML文件。 - 通过
hexo -d部署到我们自己服务器上的Git远程仓库 - 最后服务器通过
git-hooks同步到网站根目录
搭建流程
- 本地
Hexo环境搭建,需要有node.js环境(这里不介绍本地环境搭建) - 服务器环境搭建
-
Nginx配置(这里也不做介绍) -
Git配置(主要介绍)
服务器Git配置
本地生成公钥私钥
终端执行ssh-keygen -t rsa命令;如果本地之前已经生成了那么可以拿来直接用;秘钥所在位置是~/.ssh,里面包含了id_rsa和id_rsa.pub分别是私钥和公钥,id_rsa.pub是我们后面需要服务器需要用到的。
服务器Git安装
启动我们的服务器执行
yum install git安装git,结束了我们可以通过git --version看下是否安装成功
yum install git
创建git用户
创建一个名为
git的用户
adduser git
// 修改权限
chmod 740 /etc/sudoers
// 编辑
vim /etc/sudoers
找到如下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在下面添加如下代码
git ALL=(ALL) ALL
保存退出后改回权限:
chmod 400 /etc/sudoers
编辑sudoers
git服务器打开RSA认证
vim /etc/ssh/sshd_config
在sshd_config中设置以下几项:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
设置
Git用户密码
sudo passwd git
配置ssh
切换git用户并且设置密钥
su git
cd ~
mkdir .ssh
cd .ssh
// ~/.ssh/id_rsa.pub ,将公钥复制粘贴到authorized_keys
vi authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
执行ssh 命令测试
执行ssh命令测试是否可以免密登录ssh -v git@SERVER
ssh -v git@服务器的公网ip
成功返回如下:
验证ssh
创建git仓库
cd ~
// 默认是创建在home/git/目录下
git init --bare blog.git
使用
–bare参数,Git就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在
设置钩子
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
-
/home/www/website是我们在服务器上创建的目录,用来存放Hexo构建之后生成的静态文件 -
/home/git/blog.git是服务器上的远程git仓库位置。
保存并退出:
chmod +x ~/blog.git/hooks/post-receive
以上指令都需要在su git 之后执行 如果中途断开重新连接过,需要重新执行 su git指令 进入git账户。
- 新建
/home/www/website文件夹,需要切换到root账户
su root
输入密码
cd /home
mkdir www
cd www
mkdir website
// 修改文件夹权限
chmod 777 /home/www/website
chmod 777 /home/www
设置Nginx web配置文件
server {
......
# 站点根目录
root /data/www/website;
}
重启Nginx服务
nginx -s reload
到此服务器配置完成
修改本地hexo配置文件
修改hexo配置文件
到此:大功告成!可以在本地部署一下hexo看看能够更新成功
hexo clean
hexo g -d
参考链接








网友评论