Hexo博客部署到云服务器(Ubuntu)上
HDUZN

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

一、我的环境

1、Ubuntu服务器(腾讯云 Ubuntu Server 18.04系统,管理员用户:ubuntu)

2、本地Win10系统

二、Ubuntu服务器环境

1.安装 Git 和 Nginx

Git 用于版本管理和部署Nginx 作服务器用于静态博客托管

1
2
sudo apt-get update
sudo apt-get install git nginx -y

2.创建 Git仓库

/var/repo 下创建 hexo_static 的裸仓库。

1
2
3
4
5
6
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

sudo mkdir /var/repo/ 表示:创建 repo目录
sudo chown -R 表示:修改目录的所有权
sudo chmod -R 755 表示:修改目录的用户权限,至此 ubuntu用户拥有所有的权限

3.配置Nginx托管文件目录

1).创建 /var/www/hexo 目录,用于Nginx托管,修改目录所有权和权限。
本地 hexo deploy之后的内容都在这里。

1
2
3
4
sudo mkdir -p /var/www/hexo

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

2).修改Nginx的 default 设置,使 root指向 hexo目录。

1
sudo vim /etc/nginx/sites-available/default

注意:不加 sudo,会提醒 default 是只读文件。

关于 vim

Linux系统一般自带 vi 编辑工具,vim 是vi的升级版本。
如果没有 vim 可以用命令安装一下:sudo apt-get install vim
这里用 vi 也无所谓的。

关于 vim的简单使用方法,可以看这一篇文章:Linux vim/vi 命令简单使用

打开default后,修改文件中的内容,使 root指向 hexo目录,如下:

1
2
3
4
5
6
7
8
9
10
...

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /var/www/hexo; # 需要修改的部分
index index.html index.htm;

...

保存并退出文件。如果以后购买并备案域名之后,可以再将配置中的 default_server 修改为你的域名。

3).重启 Nginx服务,使改动生效。

1
sudo service nginx restart

4.创建 Git钩子

在服务器上的裸仓库 hexo_static 创建一个钩子,在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /var/www/hexo。

1).在自动生成的 hooks 目录下创建一个新的钩子文件:

1
vim /var/repo/hexo_static.git/hooks/post-receive

2).在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。

1
2
3
#!/bin/bash

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

3).保存并退出文件,并修改文件权限、让该文件变为可执行文件。

1
chmod +x /var/repo/hexo_static.git/hooks/post-receive

5.配置防火墙

第一次用,需要启用防火墙。依次执行以下命令:

1
2
3
4
5
6
7
8
9
# 1.启用ufw
sudo ufw enable
# 2.开启4000端口
sudo ufw allow 4000
# 3.允许http、https
sudo ufw allow http
sudo ufw allow https
# 4.开22端口,要用SSH
sudo uffw allow 22

运行sudo ufw status后输出:

1
2
3
4
5
6
7
8
9
10
11
12
Status: active

To Action From
-- ------ ----
4000 ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
22 ALLOW Anywhere
4000 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)

至此,服务端的配置结束。

三、本地Win10系统

1.安装Hexo

官方文档:https://hexo.io/zh-cn/docs/#%E5%AE%89%E8%A3%85

1).下载安装 Node.jsnode -v查看版本)

官网 https://nodejs.org/en/download/ 下载对应版本安装就行

2).下载安装 Gitgit version查看版本)

官网 https://git-scm.com/download/win 会根据你电脑参数,直接跳出对应版本让你下载。

官网下载很慢,可以到以下地址中下载git安装包(速度贼快):
https://npm.taobao.org/mirrors/git-for-windows/

拉到页面最下面是最新版本,比如windows 64位的系列就下载:
Git-2.30.0.2-64-bit.exe

3).下载安装 Hexohexo version查看版本)

安装完了Git后,在任意处、右键,选择【Git Bash Here】,输入以下命令安装。

1
2
npm install hexo-cli -g
npm install hexo-deployer-git --save

第一句是安装hexo;
第二句是安装hexo部署到git page的deployer,两个都需要安装。

4).Hexo初始化(创建Hexo文件夹)

安装完成后,根据自己喜好建立目录(如F:\Blog\Hexo),直接进入F:\Blog\Hexo文件夹后,右键鼠标,点击【Git Bash Here】,进入Git命令框,输入以下命令。

1
hexo init

运行完后,Hexo 将会在指定文件夹中新建所需要的文件。

本地运行测试

【Git Bash】 中依次执行下面命令,执行完即可登录网页 localhost:4000 查看效果。

1
2
3
hexo clean
hexo generate
hexo server

按Ctrl+C 停止。

2.修改 Hexo 默认配置

在站点 _config.yml 配置文件中修改博客的地址 url:

1
2
3
4
5
6
7
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'

url: http://122.44.21.213/ #没有绑定域名时填写服务器IP地址,绑定域名后填写域名
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

关于 Hexo博客 _config.yml配置文件中其它的修改,可以看官方文档:https://hexo.io/zh-cn/docs/configuration

3.通过Git部署

1).继续编辑Hexo的 _config.yml配置文件,找到 Deployment部分。按照如下情况修改:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: ubuntu@122.44.21.213:/var/repo/hexo_static.git
branch: master

2).Hexo一键部署到服务器上

在Hexo目录(比如我的是:F:\Blog\Hexo)中,鼠标右键,点击【Git Bash Here】,进入Git命令框,输入以下命令一键部署到服务器上。

1
hexo deploy

期间会提示输入 ubuntu 用户的登录密码(如果没有设置 SSH 登录),成功之后就可以在浏览器打开:http://122.44.21.213/ 访问自己的博客了。

修改内容后,一般部署到服务器上需要依次执行以下3条命令:

1
2
3
hexo clean
hexo generate
hexo deploy
  • hexo clean:Remove generated files and cache.
  • hexo generate:Generate static files. 可以简写成 hexo g
  • hexo deploy:Deploy your website. 如果没有安装别的有影响的插件,要以简写成 hexo d

Hexo的更多命令看官方文档:https://hexo.io/zh-cn/docs/commands

  • 本文标题:Hexo博客部署到云服务器(Ubuntu)上
  • 本文作者:HDUZN
  • 创建时间:2022-05-01 12:36:31
  • 本文链接:http://hduzn.cn/2022/05/01/Hexo博客部署到云服务器(Ubuntu)/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论