准备工作
在开始部署前,你需要有如下的准备:
- 本地搭建完成的博客
- 一台
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 |
安装gi
t 到/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
,应该已经部署成功了。