Hexo部署到个人云服务器
前言
最近趁着活动薅羊毛又把服务器续上了,既然白嫖到了不用白不用,就将个人博客挪个窝;顺便记录一下。
购买服务器
首先我们需要有一台云服务器,我这里是买的腾讯云的
通过git生成ssh秘钥
1 | // 假如没有设置git的全局信息需要先设置 设置过了可以忽略 |
配置服务器git
- 登录服务器
- 安装git
通过git –version命令查看是否存在git命令,我这里已经安装好了;如果显示的是not found, 需要去安装yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y yum install -y git
- 创建用户并配置仓库在编辑区输入以下内容:
1
2
3
4
5
6
7
8
9useradd git // 创建用户
passwd git // 设置密码
su git // 切换用户
cd /home/git/ // 进入git用户所在home目录
mkdir -p projects/blog // 创建项目存放的目录(可以自行创建命名)
mkdir repos && cd repos // 创建文件夹
git init --bare blog.git // 创建一个裸露的仓库
cd blog.git/hooks // 创建 hook 钩子函数
vi post-receive // 编辑hook钩子1
2
3
4
5#!/bin/sh
git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
// /home/git/projects/blog 项目存放地址
// /home/git/repos/blog.git git远程服务器仓库
按住ESC
,然后输出:wq
保存退出!
1 | chmod +x post-receive // 为刚才的文件添加可执行的权限 |
- 测试本地能否将其clone
在电脑上随便找个位置新建一个文件夹,并且将bash
或者其他命令行工具切换到这里。开始执行以下命令(注意替换成你的服务器ip),测试能否将仓库clone
下来。git clone git@server_ip:/home/git/repos/blog.git
- 建立SSH信任关系(免密登录)在本地测试能否连接成功
1
2
3
4
5
6
7su git // 切换到git用户
cd ~
mkdir .ssh // 创建.ssh目录
chmod 700 .ssh/ // 赋予权限
cd .ssh // 进入.ssh目录
vi authorized_keys // 编辑一个名为authorized_keys的文件,并写入公钥(id_rsa.pub)内容
chmod 600 authorized_keys //添加完成后赋予权限ssh git@server_ip
此时登录就只需要输入一次密码就好了。
配置NGINX服务器
- 安装
1
2
3
4// 安装依赖
sudo yum install -y yum-utils
// 安装nginx服务
sudo yum install -y nginx - 配置
1
2
3
4//切换到nginx的配置文件目录
cd /etc/nginx
// 编辑文件
vi nginx.conf // 将 user 改成 root
修改root
解析路径(/home/git/projects/blog/
)
运行nginx
此时在浏览器直接访问你的服务器ip地址即可看到一个404页面。
配置Hexo deploy
- 配置博客根目录下的_config.yml文件
1
2
3
4
5
6
7
8deploy:
- type: git
repo: git@github.com:lp-Imagine/lp-Imagine.github.io.git
branch: master
- type: git
repo: git@42.192.205.229:/home/git/repos/blog.git
branch: master
- type: baidu_url_submitter // 百度主动推送 - 本地三连
hexo clean && hexo g && hexo d
评论