在Ubuntu 20.04上安装Hexo博客
Hexo 是一个基于 Node.js 的静态博客平台。借助于 hexo ,我们可以用 Markdown 编辑器撰写文章。它借助预先构建的主题将博客文章转换为静态 HTML 文件。hexo 与其他博客平台不同,因为它使用静态文件而不是动态加载。所以,在这里我们将介绍如何在 Ubuntu 20.04 系统上安装 hexo 。
0x00 升级系统软件
更新系统以安装更新:
1 | sudo apt update -y |
0x01 安装Node.js 和 Hexo
使用下面的命令在 Ubuntu 20.04 上安装 node.js 。可以打开这个网页安装最新版nodesource
1 | curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - |
验证安装的版本:
1 | node --version |
执行以下命令以在 Ubuntu 20.04 上安装 Hexo
1 | sudo npm install hexo-cli -g |
安装后,创建一个新目录来安装 Hexo
1 | sudo mkdir -p /var/www/hexo |
给它适当的权限:
1 | sudo chown -R $USER:$USER /var/www/hexo |
现在切换到 hexo 目录并初始化它。
1 | cd /var/www/hexo |
最后,执行下面的命令安装 hexo
1 | npm install |
0x02 安装必要的插件
对我来说,安装一个加密的插件是十分必要的。注意这个插件必须使用HTTPS协议,否则输入密码后按回车会没有反应。 参考。
1 | cd /var/www/hexo && npm install --save hexo-blog-encrypt |
0x03 安装Nginx和SSL证书
执行下面命令来安装 nginx:
1 | sudo apt install nginx |
编辑 hexo 配置文件
1 | sudo nano /etc/nginx/sites-available/hexo.conf |
然后将以下内容添加到配置文件中:
1 | # 主服务器配置,处理 HTTPS 流量 |
然后保存并退出文件。创建配置文件的软链接:
1 | sudo ln -s /etc/nginx/sites-available/hexo.conf /etc/nginx/sites-enabled/ |
现在,通过下面的命令安装 certbot :
1 | sudo apt install certbot |
点击以下命令生成证书,然后创建 DHParams 证书。
1 | sudo certbot certonly --standalone -d xxx.com |
保存文件并验证语法:
1 | sudo nginx -t |
重启nginx:
1 | sudo systemctl restart nginx |
在检验nginx语法的时候遇到了报错:nginx: [emerg] BIO_new_file(“/etc/ssl/certs/dhparam.pem”) failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/etc/ssl/certs/dhparam.pem, r) error:10000080:BIO routines::no such file)
我去了对应文件夹看了一下,文件夹是存在的,也就是dhparam密钥不在。可以通过如下的命令来生成:
1 root@/etc/ssl/certs# openssl dhparam -out dhparam.pem 2048
0x04 自动拉取和部署
在 Ubuntu 上编写一个定时执行 git pull
命令的脚本是相对简单的。你可以使用 Linux 中内置的 cron 任务来完成这个任务。以下是一种方法:
创建一个新的 shell 脚本文件,比如 git_pull.sh
:
1 | touch git_pull.sh |
编辑该文件,添加以下内容:
1 | #!/bin/bash |
确保将 /path/to/your/git/repository
替换为你实际的 Git 仓库路径。
保存并退出编辑器。授予脚本执行权限:
1 | chmod +x git_pull.sh |
现在,你可以使用 cron 来设置定时任务。打开 crontab 编辑器:
1 | crontab -e |
在编辑器中,添加一行来调度你的脚本执行时间。例如,如果你想每小时执行一次 git pull
,你可以添加以下内容:
1 | 0 * * * * /path/to/git_pull.sh >/dev/null 2>&1 |
这个设置会在每小时的第 0 分钟执行 git_pull.sh
脚本。确保将 /path/to/git_pull.sh
替换为你实际的脚本路径。
保存并退出编辑器。cron 会在你指定的时间自动运行脚本,然后执行 git pull
命令。