前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hexo部署至服务器(Ubuntu 20.04)

Hexo部署至服务器(Ubuntu 20.04)

作者头像
花猪
发布2022-02-22 17:41:21
2.4K1
发布2022-02-22 17:41:21
举报

前言

本文将介绍如何从零开始,将Hexo项目部署到服务器(Ubuntu 20.04)上。

注意: 本篇教程的服务器环境为虚拟机(Ubuntu 20.04),所有的操作均使用Xshell连接进行。对于购买的云服务器环境仍具有适用性。

正文

环境

  • 服务器:虚拟机(Ubuntu 20.04) IP:192.168.75.138
  • 客户端:Windows 10

客户端使用Xshell与服务器连接,进行操作。

Ubuntu搭建Git服务器

首先使用Xshell连接服务器,并切换root用户,回退到根路径

创建Git仓库

1.安装 openssh

命令如下:

代码语言:javascript
复制
sudo apt-get install openssh-serve

2.安装完成之后,查看ssh服务是否启动

命令如下:

代码语言:javascript
复制
ps -e|grep ssh

3.创建一个名为blog的用户,用于管理Hexo项目

命令如下:

代码语言:javascript
复制
adduser blog

会提示输入密码,重复确认密码,后面的内容直接回车就好

4.给blog用户添加文件的写权限

使用vim编辑/etc/sudoers

代码语言:javascript
复制
vim /etc/sudoers

找到User privilege specification部分,添加如下内容:

代码语言:javascript
复制
blog    ALL=(ALL:ALL) AL

5.切换至blog用户

代码语言:javascript
复制
su blog

6.安装git

命令如下:

代码语言:javascript
复制
sudo apt-get install git-core

7.退回到根路径(cd /),在/var/repo下创建名为hexo_static的裸仓库

命令如下:

代码语言:javascript
复制
sudo mkdir /var/repo/
sudo chown -R $USER:$USER /var/repo/
sudo chmod -R 755 /var/repo/

cd /var/repo/
git init --bare hexo_static.git

8.可以进到该目录进行查看

配置Nginx托管文件目录

1.首先安装Nginx

命令如下:

代码语言:javascript
复制
sudo apt-get install nginx -y

2.创建/var/www/hexo目录,用于Nginx托管,修改目录所有权和权限

命令如下:

代码语言:javascript
复制
sudo mkdir -p /var/www/hexo

sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo

3.使用vim修改/etc/nginx/sites-enabled/default,使root指向hexo目录

命令如下:

代码语言:javascript
复制
sudo vim /etc/nginx/sites-enabled/default

找到server部分,修改如下内容

代码语言:javascript
复制
root /var/www/hexo;

该步骤将Nginx服务的默认路径修改为指定目录hexo。

4.重启Nginx服务,使得改动生效

命令如下:

代码语言:javascript
复制
sudo service nginx restart

创建Git钩子

1.在之前创建的hexo_static裸仓库下有一个hooks文件夹,在其中创建一个名为post-receive的钩子文件:

命令如下:

代码语言:javascript
复制
vim /var/repo/hexo_static.git/hooks/post-receive

在其中写入如下内容:

代码语言:javascript
复制
#!/bin/bash

git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f

保存后退出

2.让该文件变为可执行文件

命令如下:

代码语言:javascript
复制
chmod +x /var/repo/hexo_static.git/hooks/post-receive

Windows搭建客户端

  1. 首先安装git,这里不再过多赘述
  2. 使用命令ssh-keygen -t rsa在windons用户下/.ssh文件夹中生成密钥
  3. 将生成的公钥id_rsa.pub拷贝到ubuntu服务器的/home/blog/.ssh/authorized_keys上

首先创建.ssh目录,并进入该目录

代码语言:javascript
复制
sudo mkdir .ssh
cd .ssh/

接着创建authorized_keys文件

代码语言:javascript
复制
sudo touch authorized_keys

4.将Windows下id_rsa.pub文件中的内容复制到Ubuntu下的authorized_keys文件

命令如下:

代码语言:javascript
复制
sudo vim .ssh/authorized_keys

部署Hexo项目

编辑hexo的config.yml文件,在deploy处修改repo项:

代码语言:javascript
复制
deploy:
  type: git
  repo: blog@server_ip:/var/repo/hexo_static.git
  branch: master

执行命令hexo deploy,将静态文件上传至Ubuntu服务器

进入目录var/www/hexo/下,可以看到静态文件已全部上传

访问测试

打开浏览器,输入Ubuntu服务器的IP地址,就可以看到博客页面啦

补充

如果部署到购买的云服务器(阿里云)上,可能出现访问服务器IP没有响应的情况

点击云服务器/ECS,在安全组规则中手动添加一条80端口的规则:

后记

(后续补充域名的配置操作)

参考文章:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 正文
    • 环境
      • Ubuntu搭建Git服务器
        • 创建Git仓库
        • 配置Nginx托管文件目录
        • 创建Git钩子
        • Windows搭建客户端
      • 部署Hexo项目
        • 访问测试
        • 补充
        • 后记
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档