将Hexo部署到阿里云服务器

本地环境

安装homebrew

1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装node.js

1
brew install node

使用以下命令检查node.js是否安装成功

1
node -v

安装Git

1
brew install git

安装Hexo

1
npm install -g hexo-cli

使用以下命令检查hexo是否安装成功

1
hexo version

配置SSH密钥

1
2
git config --global user.name "username"
git config --global user.email "email@example.com"

生成SSH密钥

1
ssh-keygen -t rsa -C "email@example.com"

服务器环境

安装git

1
yum install git

创建git账户

1
adduser git

添加git账户权限

1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

使用vim打开sudoers后找到

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

在后方添加内容,完成后效果如下

1
2
3
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
git ALL=(ALL) ALL //添加内容

修改权限

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

将本机生成的id_rsa.pub文件中的公钥复制到authorized_keys中

修改权限

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

使用如下命令测试能否在本机登陆git用户

1
ssh -v git@server

安装宝塔面板

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

安装完成后在阿里云服务器中配置端口,再用显示的信息登陆宝塔,在软件商店中下载Nginx,在网站中填写域名,在配置文件中设置网站的根目录

在宝塔面板中设置网站目录时会提示禁止将特定的目录设置为网站目录;我们在设置网站根目录时要注意

1
2
3
mkdir /var/hexo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo
1
2
cd /var/repo
git init --bare hexo.git
1
vim /var/repo/hexo.git/hooks/post-receive

在post-receive中添加如下内容

1
2
#!/bin/bash
git --work-tree=/var/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

在hexo的配置文件_config.yml中修改deploy后部署即可