Hexo博客部署到云服务器

1、本地搭建hexo

本地搭建hexo过程详见hexo官网,步骤比较详细,按照步骤搭建即可

2、hexo主题

我使用的Butterfly主题,主题配置请查看Butterfly安装文档

3、部署到云服务器

3.1、服务器环境 nginx 搭建

使用云服务商提供的远程登陆登录进云服务器,可以现在服务商设置中设置 root 用户的密码以提高安全性。
使用 root 用户,安装nginx。

yum install -y nginx

启动nginx

systemctl start nginx

修改配置文件

# 进入路径
cd /etc/nginx
# 使用vim编辑器编辑配置文件
vim nginx.conf

输入 i 进入 insert 模式,并进行如下修改:

  1. 将最上方user 改为 root(或者创建名为nginx的用户并给予权限)
  2. 在 server中更改 root 指向的路径,我这里选择 /home/blog ,此时我们还没有创建这个文件夹。
  3. 如果有域名的话,将域名写到server_name上。
    在这里插入图片描述在这里插入图片描述
    按 esc 键,输入 :wq 回车退出vim编辑器并保存文件。

3.2、安装 Node.js 和 Git

3.2.1、安装 Node.js
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
# 这里的setup_14.x指Node.js14的版本,可以改为其他版本,建议不要太低,hexo一些主题的Node.js版本都比较高。
yum install -y nodejs

安装完成之后,可以执行命令查看是否安装成功

node -v
npm -v
3.2.2、安装 Git 以及配置仓库

主要是让我们的PC可以通过ssh的方式连接到云服务器,然后可以通过 deploy 的方式将我们的博客推到服务器上
安装 Git

yum install git

安装结束后配置 git 用户

adduser git

修改用户的权限

chmod 740 /etc/sudoers
vi /etc/sudoers

在 sudoers 文件中添加

git     ALL=(ALL)       ALL

在这里插入图片描述
保存退出后将 sudoers 文件的权限改回

chmod 400 /etc/sudoers

设置 git 用户的密码

passwd git

切换到 git 用户,并创建 .ssh 文件夹和公钥密钥文件

# 切换到 git 用户
su git
cd ~
mkdir .ssh && cd .ssh
# 生成公钥和密钥文件
ssh-keygen
# 然后一路 enter 键即可,此时在目录下有两个文件,密钥 id_rsa 和公钥 id_rsa.pub ,接下来复制一份公钥
cp id_rsa.pub anthorized_keys
# 然后修改它的权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

接下来在我们自己的本地,打开 cmd,尝试使用 ssh 方式连接到我们的云服务器。

ssh -v git@云服务器的公网IP地址

提示:第一次登录,服务器会让你确认是否连接,输入 yes 进入下一步,然后服务器会让你输入 git 用户的密码,输完密码后回车即可。
当然这里也可以用其他方法,让服务器与 PC 建立 ssh 信任关系,这样就不需要输入密码了。
如果为了安全起见,还可以将 git 用户的 shell 登录权限禁用。

出现 Welcome to Alibaba Cloud Elastic Compute Service ! 或其他类似的语句,就说明登录成功了。
接下来需要创建一个新的 git 仓库,并且新建一个 post-update 文件(有些 git 版本可能是 post-receive ,注意分辨即可)。

cd ~
git init --bare blog.git
vi ~/home/git/blog.git/hooks/post-update

在post-update文件添加以下内容

–work-tree路径和nginx配置文件中root路径保持一致

git --work-tree=/home/blog --git-dir=/home/git/blog.git checkout -f

添加结束后修改权限

chmod +x ~/home/git/blog.git/hooks/post-update
exit # 退出到 root 登录
chown -R git:git /home/git/blog.git # 添加权限

4、在本地完成推送部署

找到项目中hexo 的配置文件 _config.yml,找到deploy配置,进行修改

deploy:
 type: git
 repo: git@云服务器的公网IP:/home/git/blog.git
 branch: master
 message:

发布到服务器

hexo clean
hexo g -d

然后我们就可以在本地主机浏览器上输入域名或者公网IP访问我们的博客了。

5、常见问题

Q:部署到云服务器,出现了 403 界面怎么办?

A: 403 为禁止访问,nginx 服务器没有获得你的路径的读取的权限,检查是否给予了 post-update 权限 chmod +x ~/home/git/blog.git/hooks/post-update。如果还不行可以尝试使用 chmod -R 777 /home/blog。

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gzzz__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值