HEXO博客部署到云服务器上
1.准备工作
- 已经搭建完毕的本地博客
- 一台 windows/mac 电脑
- 一台云服务器(本教程以阿里云为例)
- 本地电脑安装一个 ssh 连接工具
- 有可能失败很多次但是不会放弃的决心(本博主弄了四个小时)
只要按照本教程来基本上就是复制粘贴的事情,有的小细节可能需要自己注意下
2.服务器上安装配置 git
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 到家目录
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 |
3.创建用户配置 SSH
1 创建用户并设置密码
这里的 username 改成你自己的用户名,并且为用户设置一个密码。
例如:
1 | adduser git |
这里密码设置的太简单了,所以就会有提示信息,但是不用管他
2 为用户分配权限
把用户添加到 wheel 组
1 | usermod [username] -G wheel |
3 本地创建密钥
在本机电脑终端输入(cmd):
1 | ssh-keygen -t rsa |
第一次回车后输入 y 后面就是一直回车了,新建一个密钥,注意如果之前你将你的本地 hexo 博客部署到 GitHub 的时候生成的那个密钥是不可用的一定要重新生成这个密钥,不然上传的时候就会出错。
一般来说在你创建的时候命令行会提示你密钥文件的路径,windows 电脑一般是 C:\Users\Administrator.ssh
复制 id_rsa.pub 文件中的内容备用。
4 配置公钥
回到服务器终端,切换用户
username 就是你刚刚添加的用户
1 | su - [username] |
创建.ssh 文件夹
1 | mkdir .ssh |
新建 authorized_keys
1 | vim .ssh/authorized_keys |
如果提示没有 vim,则先安装:
1 | sudo yum install -y vim |
将刚刚 id_rsa.pub 公钥中的内容,复制粘贴到文件里,保存退出。(注意这里是输入 i 编辑,esc 退出编辑模式,:wq 保存)
4 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 |
5 nginx 配置
首先创建 blog 目录用户 nginx 转发
1 | mkdir /home/blog/ |
1 第一种方法安装 nginx
两种方法任选其一,如果 yum 安装成功就不用第二种。
1 | yum install -y nginx |
启动 nginx
1 | systemctl start nginx.service |
查看 nginx 服务状态,绿色的 active 说明启动成功
1 | systemctl status nginx.service |
2 第二种方法安装 nginx
针对 yum 无法安装的情况,这里介绍第二种方法,源码安装。
回到家目录
1 | cd |
下载安装包,鉴于下载地址的时效性,附上
1 | wget http://nginx.org/download/nginx-1.21.4.tar.gz |
解压
1 | tar -zxf nginx-1.21.4.tar.gz |
进入目录,编译安装
1 | cd nginx-1.21.4 |
配置 nginx 环境变量,并使环境变量生效
1 | echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> /etc/bashrc |
查看 nginx 版本号
1 | nginx -v |
配置 Systemd 服务
1 | vim /lib/systemd/system/nginx.service |
在文本编辑器中粘贴以下内容:
1 | [Unit] |
内容说明:
1 | [Unit]:服务的说明 |
设置开机自启动
1 | systemctl enable nginx.service |
重启电脑
1 | reboot |
重启后,查看 nginx 服务状态,绿色的 active 说明启动成功
1 | systemctl status nginx.service |
3 修改 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 |
6 在 hexo 站点配置文件中配置
打开你本地的 hexo 博客所在文件,打开站点配置文件_config.yml
1 | deploy: |
在本地 hexo 博客根目录下,打开终端,部署
1 | hexo clean |
如果提示 ERROR Deployer not found:git 错误,先安装:
1 | npm install hexo-deployer-git --save |
出现这个问题,删除 known_hosts 文件,可能是之前生成过,输入然后输入会让你输入密码,就是你的 git 用户密码
位置:C:\Users\Administrator.ssh
打开浏览器输入你的服务器公网 ip,应该已经部署成功了。