Hugo 博客搭建
hugo 是一个基于go语言的博客框架
本次探索基于VMware虚拟机进行
系统采用CentOS
使用宝塔面板管理nginx站点
虚拟机基本配置
VM安装完虚拟机之后,创建一个快照。
su root
# 输入密码
vim /etc/ssh/sshd_config
修改这些地方
PermitRootLogin no
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启sshd服务
systemctl restart sshd
获取虚拟机内网ip
ifconfig
得到ip地址192.168.2.142
设置私钥
ssh到虚拟机
cd ~
mkdir .ssh
chmod 700 ~/.ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
vim .ssh/authorized_keys
复制公钥进去
设置hosts
在物理机上面添加一条记录,192.168.2.142 york.hugo
安装宝塔
第一步,ssh到虚拟机
su root
# 输入密码
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
# 过程中需要输入一次y
安装完成之后,会给出一个访问面板的信息,记录下来
外网面板地址: http://***.***.***.***:8888/7ecd581d
内网面板地址: http://192.168.2.142:8888/7ecd581d
username: mh17grap
password: b3e8c060
因为使用虚拟机安装,访问的是内网的地址。在浏览器访问地址(把ip替换为hosts设置的域名),输入账号密码,同意协议,进入面板。
由于这次是探路,并不是实际部署,所以面板的很多设置都跳过了。
安装LNMP套装时,只勾选Nginx即可。
配置hugo
下载hugo包
在hugo的release页面,下载最新的Linux-64bit.tar.gz包
https://github.com/gohugoio/hugo/releases
安装hugo包
在宝塔页面,点击文件,随便创建个文件夹(如user/york/hugo),上传下载好的包,并且解压。
cd ~/hugo
cp hugo /usr/local/bin
创建hugo站点
cd /www/wwwroot
hugo new site york.hugo
cd york.hugo
下载主题
例如dream主题
https://github.com/g1eny0ung/hugo-theme-dream.git
cd /www/wwwroot/york.hugo
git clone https://github.com/g1eny0ung/hugo-theme-dream.git themes/dream
添加一篇文章
hugo new about.md
vim content/about.md
或者在宝塔面板直接创建文件也可以
随便写点什么
更新配置文件
在主题的文件夹里面,找到exampleSite文件夹,复制里面的config.toml文件到站点根目录
修改配置
baseurl = "http://york.hugo"
languageCode = "zh"
defaultContentLanguage = "zh"
title = "改一个自己喜欢的标题就行"
theme = "dream"
[params]
author = "York Su"
email = "自己的邮箱"
其他配置看情况自行修改
在本地启动hugo server
hugo server
生成静态html文件
hugo
命令完成后,会在网站根目录生成一个public文件夹
之后更新了blog,也是输入这一个命令即可
部署网站
在宝塔新建一个站点,域名输入york.hugo,网站根目录选择/www/wwwroot/york.hugo/public
完成部署
部署时遇到的问题
1、在本地启动server时遇到了问题
因为是使用了虚拟机加宝塔面板来部署,所以并不是通过访问localhost:1313
来访问站点,而是通过宝塔反代来尝试访问,结果出现了主题显示不正常的情况
解决方法是
hugo server --baseUrl="http://york.hugo" --bind= --buildDrafts -t dream
这个问题在配置了站点根目录的config.toml之后也可以解决
可以改进的地方
通过git或者syncthing或者ftp等各种方式对content文件夹进行同步。
自己写一个python脚本,每过一段时间检测content文件夹里面的文件是否有改动,如果有改动,在终端执行命令hugo
来生成静态文件。
这样也可以实现自动更新。
个人观点
hugo的部署相比起hexo,是要方便一些。
但是hugo虽然是足够快,主题基本上都比较老,或者说比较难找到我满意的。我找到的基本都是16年的,而且有不少主题作者都已经停止更新了。不过也可能是因为我只是尝鲜一下,没有认真去找主题吧。
而且其实,相比起安装、部署,有一个更耗精力的地方其实是主题的DIY。一个主题即便是本身做得多么好,到我手上的时候肯定不是一开始就完全符合我的需求的,因此需要自己手动修改一些地方。而这,才是最麻烦、坑最多的地方。
而且严格来说,虽然是部署相对简便一些,但是后续的维护和使用其实和hexo是差不多的(对我来说都是有一点麻烦)。无非就是因为go语言的,生成的速度要快一些。
对我来说仍然是一个不会选用的博客框架。