Centos 7 搭建 Hugo

Nginx

本地重新编译安装,因为需要重新编译 Nginx 配置 SSL 模块

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

# 进入指定的文件夹
cd /usr/local/lib64

# 下载指定的Nginx安装包(也可将本地下载的Nginx包上传)
wget http://nginx.org/download/nginx-1.15.9.tar.gz

# 解压安装包
tar -zxvf nginx-1.15.9.tar.gz

# 进入解压的安装包文件夹
cd nginx-1.15.9

# 配置ssl模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module

# 编译Nginx
make && make install

# 配置环境变量
vim /etc/profile

# 文件末尾添加以下内容
export NGINX_HOME=/usr/local/nginx  
export PATH=$PATH:$NGINX_HOME/sbin

# 保存并退出编辑器
# 在vim中,按Esc键,然后输入:wq并回车以保存并退出

# 使配置生效
source /etc/profile

# 检查配置
# -v:小v会输出版本号,-V:大V会输出更多的信息,包括编译时使用的参数(configure arguments)
nginx -v

# 验证是否成功安装ssl模块
nginx -V

关于 Hugonginx.conf 配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
    listen       80;
    server_name  站点域名;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name 站点域名;
  
	ssl_certificate xxxxxx.crt;
	ssl_certificate_key xxxxxx.key;

    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

	location / {
		root   /usr/local/bin/hugoblog/public;
        index  index.html index.htm;
	}
}

Git

如果是自己去 github 下载资源,再上传到服务器,不配 git 也可以

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 安装git
yum install git

# 配置git
git config --global user.name "your_user_name"
git config --global user.email "your_mail"

# 查看配置是否生效
git config --list

# 生成本地ssh key添加到github
ssh-keygen -t rsa -C "your_mail"

# 查看公钥
cat /root/.ssh/id_rsa.pub

# 进入github的settings设置,点击[SSH and GPG keys],添加公钥即可

# 验证是否配置成功
ssh git@github.com

Hugo

安装包:https://github.com/gohugoio/hugo/releases
版本:hugo_extended_0.127.0_Linux-64bit.tar.gz

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mkdir hugo

# 将安装包下载到 hugo 文件夹,并解压
tar xvf hugo_extended_0.127.0_Linux-64bit.tar.gz

# 复制一份 hugo 程序到 /usr/local/bin/
cp ./hugo /usr/local/bin/  不然hugo执行找不到路径

cd /usr/local/bin

# 生成站点
hugo new site hugoblog

cd path

git init
# git 克隆主题

# 创建第一篇文章,放到 post 目录
hugo new content posts/my-first-post.md

# 打开编辑文章后,要注意一点的是 draft 表示草稿的意思,应该把这里改为 false 或删除这段,不然文章即使写入也生成不了

# 本地预览网站效果,使用浏览器打开 http://localhost:1313 预览
# 如果你对预览效果满意,ctrl + c 停止,进入下一步。
# 如果不满意,编辑 config.toml 配置文件,再次预
hugo server -D --disableFastRender

# 构建 Hugo 网站,在 Hugo 网站文件夹的根目录下,执行 hugo 命令来构建
# 注意: Hugo 会将构建的网站内容默认保存至网站根目录的 public/ 文件夹中。 输入 hugo 的生成方式只会往 public 文件夹里添加内容,但是不会删除外部已经不存在而 public 里面还存在的文件,
# 所以一般用 hugo -F --cleanDestinationDir 命令,表示每次生成的 public 都是全新的,会覆盖原来的。
hugo

hugo -F --cleanDestinationDir

报错及解决

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# [root@hecs-344585 bin]# hugo new site hugoblog
# hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by hugo)
# hugo: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by hugo)
# hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by hugo)

# 查看当前的版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

# 执行命令升级
sudo yum provides libstdc++.so.6

cd /usr/local/lib64

# 下载最新版本的libstdc.so_.6.0.26
sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip

# 解压
unzip libstdc.so_.6.0.26.zip

# 将下载的最新版本拷贝到 /usr/lib64
cp libstdc++.so.6.0.26 /usr/lib64

cd  /usr/lib64

# 查看 /usr/lib64 下 libstdc++.so.6 链接的版本
ls -l | grep libstdc++

# 删除/usr/lib64 原来的软连接 libstdc++.so.6,删除之前先备份一份
sudo rm libstdc++.so.6

# 链接新的版本
sudo ln -s libstdc++.so.6.0.26 libstdc++.so.6

# 查看新版本,成功
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

基本配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
baseURL = 'https://example.com/'
languageCode = 'zh-cn'
title = 'my hugo blog'

# 主题名称,和theme文件夹中的名字保持一致
theme = "FixIt"

# 菜单设置
# 新增多行内容: 配置主页菜单
# 菜单1
[[menu.main]]
  identifier = "article_id"
  parent = ""
  pre = ''
  post = ""
  name = "文章"
  url = "/article"
  title = ""
  weight = 1

# 菜单1 的子项A
[[menu.main]]
  identifier = "article_jotting"
  parent = "article_id"
  pre = ''
  post = ""
  name = "杂记"
  url = "/article/jotting"
  title = ""
  weight = 1

# 菜单1 的子项B
[[menu.main]]
  identifier = "article_course"
  parent = "article_id"
  pre = ''
  post = ""
  name = "教程"
  url = "/article/course"
  title = ""
  weight = 2

# 菜单2
[[menu.main]]
  identifier = "note_id"
  parent = ""
  pre = ''
  post = ""
  name = "笔记"
  url = "/note"
  title = ""
  weight = 2

# 菜单2 的子项A
[[menu.main]]
  identifier = "note_Java"
  parent = "note_id"
  pre = ''
  post = ""
  name = "Java"
  url = "/note/Java"
  title = ""
  weight = 1

0%