当前位置:   article > 正文

Hexo博客部署到云服务器

Hexo博客部署到云服务器

1、本地搭建hexo

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

2、hexo主题

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

3、部署到云服务器

3.1、服务器环境 nginx 搭建

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

yum install -y nginx
  • 1

启动nginx

systemctl start nginx
  • 1

修改配置文件

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

输入 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
  • 1
  • 2
  • 3

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

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

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

yum install git
  • 1

安装结束后配置 git 用户

adduser git
  • 1

修改用户的权限

chmod 740 /etc/sudoers
vi /etc/sudoers
  • 1
  • 2

在 sudoers 文件中添加

git     ALL=(ALL)       ALL
  • 1

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

chmod 400 /etc/sudoers
  • 1

设置 git 用户的密码

passwd git
  • 1

切换到 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

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

提示:第一次登录,服务器会让你确认是否连接,输入 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
  • 1
  • 2
  • 3

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

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

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

添加结束后修改权限

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

4、在本地完成推送部署

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

deploy:
 type: git
 repo: git@云服务器的公网IP:/home/git/blog.git
 branch: master
 message:
  • 1
  • 2
  • 3
  • 4
  • 5

发布到服务器

hexo clean
hexo g -d
  • 1
  • 2

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

5、常见问题

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/617529
推荐阅读
相关标签
  

闽ICP备14008679号