
利用Hugo搭建静态个人博客
本文主要介绍本Blog的搭建方法,利用了hugo和Nginx在腾讯云上搭建。
前提环境条件
- git
- Go
- hugo
- Nginx
- 一台腾讯云轻量应用服务器(可选备案域名)
- 一台能用的本地电脑
本地搭建过程
本文的本地和服务器实验系统均为Ubuntu20.04。
安装 git
git官网 https://git-scm.com/download/linux
ubuntu下快速安装方式sudo apt-get install git
安装 go
-
下载包 golang官网:https://golang.org/dl/ (进不去的话请使用国内镜像或魔法) 下载对应版本的go,我选择的是 go1.22.4.linux-amd64.tar.gz
-
解压 进入包目录,然后解压到/uer/local下
|
|
- 添加环境变量
|
|
- 查看版本验证是否成功
|
|
安装hugo
-
下载安装包 hugo github:https://github.com/gohugoio/hugo/releases 下载对应版本hugo,我选择的是 hugo_0.119.0_linux-amd64.deb ps:这里要注意,如果hugo版本太高,后面使用主题的时候可能会出错,因为hugo在0.12版本后改变类很多东西,与主题不适配
-
安装 ubuntu下直接安装既可
|
|
- 查看安装是否成功
|
|
新建本地网站
|
|
后面的xxx为文件夹名称,例如hugo new site blog
这样,在你当前路径下就会出现一个名为 blog
的文件夹,与网站相关的内容都在该文件夹下。
内容如下
|
|
安装主题
进入hugo主题仓库:https://themes.gohugo.io/ 挑选你喜欢的主题,这里我用的主题是NewBee:https://themes.gohugo.io/themes/newbee/ 注意该主题不能使用hugo 0.12以上的版本
将主题从作者的github上git下来,放到blog
文件夹下的theme
文件夹下
|
|
然后将NewBee/config-example
文件夹下的config.toml复制到blog
文件夹下(不同的主题config.toml的位置可能不同,可以参考作者的README)
|
|
新建文章
|
|
Hugo 会在 content 目录下创建一个新目录 posts ,该目录将会用来存储所有博客文章。 同时 Hugo 还会在 posts 目录下创建一个新的 Markdown 文件 firstpost.md ,用来存放博客文章的具体内容。
可以选择输入vim content/posts/firstpost.md
来编辑文章,也可以利用vscode等工具来直接编写文章
本地测试
做完上述就可以进行本地预览了,在blog
下输入hugo server -D
,根据屏幕输出提示,在浏览器中输入网址 http://localhost:1313 查看网站效果。
- 参数 -D 可构建标记为“草稿”的文章和页面。
hugo server -D
和hugo server
的差别:后者不会渲染前置参数为draft: true(draft是草稿的意思)的文章,这意味着在预览网站时你不会看到这篇文章的任何信息。
此时当更新博客内容文件(如 firstpost.md )、网站配置文件(如 hugo.toml)或主题配置(如 theme/NewBee/),Hugo 服务器会实时自动刷新网站内容。 Ctrl+C
停止本地服务器
构建网站
当发布完文章并且测试后,即可生成完整网站
输入hugo
,Hugo 会创建一个新目录 public
,并将部署网站所需的一切静态资源和内容整合至该目录下。
服务器配置
安装nginx
Nginx (engine x) 可用作HTTP和反向代理服务器、邮件代理服务器或通用的TCP/UDP代理服务器。
输入sudo apt install nginx
,即可快速安装nginx。
nginx的简单操作
- 查看nginx的位置:
whereis nginx
- 开启nginx:
sudo systemctl start nginx
- 关闭nginx:
sudo systemctl stop nginx
- 查看当前nginx状态:
systemctl status nginx
- 验证当前配置文件是否正确:
nginx -t -c xxx
- -c后可跟具体的配置文件,如果不加则为当前已加载配置文件
nginx配置
- 新建配置:
|
|
- 修改mysite
sudo vim mysite
|
|
- 替换原有 Nginx 配置文件
|
|
- 启动nginx
|
|
部署网站
将hugo在本地电脑上生成的public上传到服务器上
|
|
查看网站
此时可在浏览器输入域名,查看博客网站效果。
更新博客
后续在本地更新网站内容后,只要将本地的pulic替换服务器上的public即可
这里我们可以写一个关于rsync
的shell脚本来进行快捷操作
新建一个脚本vim deploy.sh
|
|
将脚本放在blog
文件夹下,每次只需要在终端里输入bash deploy.sh
,即可完成同步
SSL证书安装
申请证书
由于我没得财力,所以选用腾讯云的免费证书,具体参考https://cloud.tencent.com/document/product/400/6814
安装证书
腾讯云免费证书没特殊服务,得手动安装。在申请完证书后,下载nginx的证书文件,并解压,可以得到四个东西:
cloud.tencent.com_bundle.crt 证书文件
cloud.tencent.com_bundle.pem 证书文件
cloud.tencent.com.key 私钥文件
cloud.tencent.com.csr CSR 文件
我们需要将cloud.tencent.com_bundle.crt 证书文件和 cloud.tencent.com.key 私钥文件从本地目录拷贝到服务器的/etc/nginx目录。 创建一个/etc/nginx/ssl文件夹,将上述两个东西传过去。
之后修改对应的nginx配置文件,如下所示
|
|
之后验证并重启nginx
|
|
这样就能访问我们https的个人博客了。