静态Blog程序Hugo因为轻量小巧,界面简约美观,自定义程度高,越来越受到青睐,但要部署仍需要一定的技术基础,下面以CentOS 7.9的系统环境为例,简单编写了一个Hugo部署的入门教程。

安装go

运行go安装指令:
yum -y install golang

查看go的版本以确定是否安装成功:
go version

安装Hugo

添加epel repo,以提供 yum 的安装方式,新建 hugo.repo 文件:
nano /etc/yum.repos.d/hugo.repo

文档内容设置为:

[daftaupe-hugo]
name=Copr repo for hugo owned by daftaupe
baseurl=https://copr-be.cloud.fedoraproject.org/results/daftaupe/hugo/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/daftaupe/hugo/pubkey.gpg
repo_gpgcheck=0
enabled=1

yum 安装Hugo:
yum -y install hugo

查看Hugo的版本以确定是否安装成功:
hugo version

建立Hugo站点

用以下指令建立Hugo的站点,hugo_path 为您想放置Hugo站点的位置,如:/usr/local/hugo
hugo new <hugo_path>

下载和配置Hugo主题

建立Hugo站点后,需要再为Hugo下载主题,可到Hugo的官方主题页面挑选喜欢的主题:
https://themes.gohugo.io

可通过Git的方式直接clone到themes目录下:
git clone <theme_git_url> themes/<theme>

一般在主题目录下提供了exampleSite站点,因是新建的站点,可以把里面的文件复制到建立Hugo站点时设置的主目录下。
cp -r <hugo_path>/themes/<theme>/exampleSite/* <hugo_path>

当然,也可以只把 config.toml 配置文件复制到Hugo主目录,手动进行文章等内容的创建。
cp config.toml <hugo_path>

然后,对Hugo主目录下的主题配置文件 config.toml 进行编辑,设置站点内容,设置方法一般主题都会提供说明。
nano <hugo_path>/config.toml

创建文章

用以下指令创建文章,放到post目录:
hugo new post/first.md

然后,就会在post目录建立一篇markdown格式的纯文本文件 first.md,可以用以下指令进入编辑:
nano <hugo_path>/post/first.md

主要是修改文章标题 title,以及在顶部文章定义内容的下方添加正文,默认情况下,文章设置为草稿状态 draft: ture,编辑完成后需要修改为 draft: false

发布站点

进入到Hugo的主目录下,用以下指令发布站点:
hugo

站点发布后,会生成静态页面放置在Hugo主目录下的 publish 文件夹:<hugo_path>/publish/,Hugo会把.md文件转换为.html网页文件。

安装Nginx

添加CentOS 7 EPEL库:
yum install epel-release

用yum安装Nginx:
yum install nginx

安装完成后,启动Nginx服务:
systemctl start nginx

设置Nginx开机启动:
systemctl enable nginx

可在浏览器输入 http://ip/ 查看Nginx是否成功启动,注意需要在防火墙开启端口。

配置Hugo到Nginx

打开Nginx的默认配置文件:
nano /etc/nginx/nginx.conf

将指向服务器的域名填写到 <server_domain>,修改路径为Hugo的主目录 <hugo_path>

server {
   listen 80;
   server_name <server_domain>;
   index index.html index.htm;
   root  <hugo_path>
}

到这里,在CentOS 7.9 部署Hugo就基本完成,可以进行愉快地写作了。

当然,如果您不满足于此,还可以为网站添加https,以及尝试多个不同的主题,对主题进行丰富的自定义配置等等,有很多可玩的空间哦~

Enjoy! 😄