准备工作
在开始部署前,你需要有如下的准备:
- 本地搭建完成的博客
- 一台
window/mac电脑 1 - 一台云服务器
- 一个已经备案的域名
- 电脑安装一个
ssh连接工具
云服务器配置
使用ssh连接工具登录到云服务器上,然后开始如下操作:
1.安装依赖工具包
1 | yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel |
2.安装编译工具
1 | yum install -y gcc perl-ExtUtils-MakeMaker package |
3.删除旧版本 git
1 | yum remove git -y |
4.进入家目录
1 | cd |
5.下载 git 到家目录
鉴于下载地址的时效性,附上官网地址,后续 git 更新请去官网下载安装包。
1 | wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz --no-check-certificate |
如果提示没有wget命令,先安装:
1 | yum install wget -y |
6.解压文件
1 | tar -zxf git-2.34.0.tar.gz |
7.安装 git
进入到git目录下
1 | cd git-2.34.0 |
编译
1 | make all prefix=/usr/local/git |
安装git 到/usr/local/git下
1 | make install prefix=/usr/local/git |
8.配置git环境变量
将git加入PATH目录中
1 | echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc |
使配置生效
1 | source /etc/bashrc |
查看 git 版本
1 | git --version |
如果能查看到 git 的版本号,说明安装成功。
云服务器配置SSH免密登录
1.创建用户并设置密码
这里的[username]改成你自己的用户名,并且为用户设置一个密码。
1 | adduser [username] |
2.为用户分配权限
把用户添加到wheel组
1 | usermod [username] -G wheel |
3.本地创建密钥
我们先要回到本地电脑。
这里的[your_email@example.com]改成你的邮箱在本机电脑终端输入:
1 | ssh-keygen -t rsa -C "[your_email@example.com]" -f hexo-blog |
然后一直回车,新建一个密钥。一般来说在你创建的时候命令行会提示你密钥文件的路径,windows电脑一般是C:\Users\Administrator\.ssh\。复制hexo-blog.pub文件中的内容备用。
4.配置公钥
我们先要回到云服务器。
切换到[username]用户。
1 | su - [username] |
创建.ssh文件夹
1 | mkdir .ssh |
新建authorized_keys
1 | vim .ssh/authorized_keys |
如果提示没有 vim,则先安装:
1 | sudo yum install -y vim |
将刚刚hexo-blog.pub公钥中的内容,复制粘贴到文件里,保存退出。
5.排查不能免密登录
排查方法
下面总结出一个常用的排查事项:
| 检查 | 操作示例 | 说明 |
|---|---|---|
.ssh目录的属主、属组是否为要登陆的用户与用户组 | ll -a /home/[username]/ | username为用户名,下同 |
.ssh目录的权限是否为 700 | ll -a /home/[username]/ | |
.ssh目录下 authorized_keys 的权限是否为 644 | ll -a /home/[username]/.ssh/ | |
[username]目录的权限是否为 755 | ll -a /home/ | 700 也可以,确保其他人没有w权限 |
修改属组和权限
修改权限
1 | chmod 700 .ssh |
修改属组
1 | chgrp [group] .ssh |
修改属主
1 | chown 用户名 /home/用户名 |
云服务器git仓库配置
退出用户登录
1 | exit |
此时应该是root用户,创建git目录,并修改目录的所有权和用户权限
1 | mkdir /home/git/ |
进入目录,建立 git 仓库,修改权限
1 | cd /home/git/ |
新建钩子文件 post-receive
1 | vim /home/git/blog.git/hooks/post-receive |
进入文本编辑器,粘贴下面两行。
1 |
|
保存退出。然后修改文件权限
1 | chmod +x /home/git/blog.git/hooks/post-receive |
云服务器nginx配置
安装nginx
1 | yum install -y nginx |
启动 nginx
1 | systemctl start nginx.service |
查看nginx服务状态,绿色的active说明启动成功
1 | systemctl status nginx.service |
修改nginx转发配置
在浏览器中输入服务器公网ip地址,测试是否能打开。
查看nginx的默认配置文件的安装位置
1 | nginx -t |
修改nginx的默认配置,其中cd后边就是刚刚查到的安装位置,每个人可能都不一样,我这里是/usr/local/nginx/conf/nginx.conf
1 | vim /usr/local/nginx/conf/nginx.conf |
在文本编辑器中找到如下位置
1 | server { |
保存退出。重启nginx服务
1 | systemctl restart nginx.service |
在本地hexo站点配置文件中配置
打开你本地的hexo博客所在文件,打开站点配置文件_config.yml
xxx.xxx.xxx.xxx替换成你自己的服务器公网IP或者域名
[username]替换成你自己的用户名
1 | deploy: |
在本地hexo博客根目录下,打开终端,部署
1 | hexo clean |
如果提示ERROR Deployer not found:git错误,先安装
1 | npm install hexo-deployer-git --save |
打开浏览器输入你的服务器公网ip,应该已经部署成功了。