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
关于 Hugo
的 nginx.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