Hexo部署至云服务器的宝塔面板
Hexo部署至云服务器的宝塔面板
本文为网络转载, 版权属于:Heson
简介
hexo 博客部署方法有好多种,github pages
、gitee pages(pro)
、vercel
,cloudflare page
、阿里云oss
、腾讯存储桶
等等这些不需要购买服务器的部署方式。一般大部分都用以上方式部署自己的hexo博客,但也有少部分部署在自己服务器
的同志。
新手部署服务器最常见的方法就是:直接把本地生成的public
中的文件,直接ftp到服务器www根目录
,简单粗暴。
还有一种更优雅地方式,那就是直接在服务器上搭建git仓库
,hexo三连直接deploy
上去(跟搭建在github pages上的方式一样)。
为什么要部署至服务器?
个人感觉手头有闲置的网速较快的服务器,可以尝试部署至服务器。
比如我手头有一个腾讯云香港二区 2核 4GB 5M的服务器。
对比了一下我放在又拍云cdn上的主站网速,可以看到:
这速度可谓不相上下。
相比起github pages的慢、coding pages的抽(移动宽带经常抽),服务器部署还是有一定优势的。
当然,如果域名备案
了,手头没有闲置的服务器
,还是建议嫖上国内的CDN(又拍云)。
部署教程
老样子,简单说下思路:
- 服务器安装宝塔面板
- 创建git仓库,并配置git钩子,自动同步文件到网站目录
- 配置网站访问设置
- 本地
git deploy
设置
准备工作
1.云服务安装宝塔面板
2.本地生成ssh秘钥备用
1 | git config --global user.name "GitHub用户名" |
连接服务器终端
宝塔面板用户可直接左侧导航栏终端
登录(如图)
- 切换到
root
账号
1 | sudo su root |
宝塔默认是root账号,注意看图:
- 安装
git
1 | yum install git |
创建 Git 账户
创建 Git 账户并赋予权限
1 | adduser git |
编辑 /etc/sudoers
文件
1 | vim /etc/sudoers |
按i
键进入编辑模式,找到root ALL=(ALL) ALL
,在其下方加入:
1 | git ALL=(ALL) ALL |
如图所示:
输入完成后按esc
,再输入:wq
,保存退出。
更变/etc/sudoers
权限
1 | chmod 400 /etc/sudoers |
设置 git 账户密码
1 | sudo passwd git |
输入密码,输入的时候是看不到任何显示的,输完回车即可。
切换至 git 用户
,创建 ~/.ssh
文件夹和 ~/.ssh/authorized_keys
文件
1 | su git |
同样i
进入编辑模式,把之前本地准备的id_rsa.pub
文件中的公钥复制进去,按esc
后,输入:wq
保存。(注意!!!!!!!!!!! 最后一行要加回车)
更改权限:
1 | chmod 600 /home/git/.ssh/authorized_keys |
本地测试:
1 | ssh -v git@服务器ip地址或域名 |
不用输密码就成了。
创建git仓库
切换为root
用户
1 | sudo su root |
创建repo
作为仓库目录,并加权限
1 | mkdir /var/repo |
创建 hexo 目录作为网站根目录
1 | mkdir /var/hexo |
创建一个空白的 git 仓库
1 | cd /var/repo |
编辑一个 Git 钩子
1 | vim /var/repo/hexo.git/hooks/post-receive |
按i
进入编辑模式,添加下面的代码,按esc
输入:wq
保存
1 | #!/bin/bash |
更改权限
1 | chown -R git:git /var/repo/hexo.git/hooks/post-receive |
宝塔网站配置
创建一个网站
本地 Git deploy 设置
安装git部署插件
1 | npm install hexo-deployer-git --save |
在博客根目录配置
1 | deploy: |
配置完成后,可直接hexo三连到自己的服务器。简单快捷。
如果报错:error: remote unpack failed: index-pack abnormal exit
, 删除/var/hexo
下的所有文件. 包括.user.ini
, 这个文件作用为防跨站, 添加权限之后可以再添加回来.
重新给权限
1 | chown -R git:git /var/repo |