博客的架构
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
参考链接
网友评论