一、简介
通过本次实验,我们将会在云服务器上部署hexo框架,搭建个人博客,并在控制台配置安全组,最终 实现通过公网IP访问自己部署在云服务器上的网页。
实验环境:
ubuntu系统的阿里云服务器ECS
whidows系统主机
参考视频:[教程]-使用hexo开发个人博客-并部署到服务器-顺便更换主题_哔哩哔哩_bilibili
二、登录云服务器
有多种登录云服务器方式,此处介绍两种。
1.云服务器管理控制台远程连接
在云服务器管理控制台中选中需要登录的云服务器,点击远程连接后,网络连接选择私网,输入密码或采用密钥登录即可。
2.Windows PowerShell远程连接
打开Windows PowerShell,输入 ssh root@<云服务器公网ip>(如 ssh root@47.43.172.203),
然后输入密码登录即可。
三、安装Hexo
hexo官方文档:文档 | Hexo
安装Hexo首先需要安装node.js和Git,Git一般云服务器默认已经安装好。
确保一下命令在登录云服务器后执行。
1.安装node.js
安装命令:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
安装检查:
node -v
npm -v
如果正常返回两个对应的版本号,则说明已经安装成功node.js.
2.安装git
安装命令:
sudo apt-get install git-core
安装检查:
git --version
如果正常返回版本号,则说明已经安装成功。
3.安装hexo
安装完成上述必备的应用程序后,即可使用 npm 安装 Hexo。
安装命令:
npm install -g hexo-cli
安装检查:
hexo --version
如果正常返回版本号(条目很多),则说明已经安装成功。
四、Hexo建站
1.新建文件夹
安装 Hexo 完成后,执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
hexo init <文件夹名称>
cd <文件夹名称>
npm install
初始化后,项目文件夹如下所示:
请记住新建的文件夹名称,如果忘记,可以采用ls命令查看,之后的命令将在该文件夹下执行。
2.编辑配置文件
执行以下命令,打开配置文件。
vim _config.yml
vim使用方法如下:
配置文件条目参考官方文档:配置 | Hexo
必须配置的条目为:url
将url条目修改为: http://<云服务器公网ip>
推荐修改 language 条目为 zh-CN,即简体中文
3.部署网站
生成静态文件并部署
hexo g -d
运行服务
hexo server -p 4000
-p 后即服务运行端口,浏览器访问需从该指定端口访问,可修改,默认为4000。
此时在浏览器输入https://<服务器公网ip>:4000,会发现显示无法访问,因为云服务器未允许该端口的访问,需要在安全组中配置开启入方向对应端口。
4.配置安全组规则
在云服务器管理控制台中,选择左侧安全组,点击对应云服务器中的管理规则。
选择入方向->手动添加,填写目的端口(上一步hexo服务指定运行的端口),源端口选择所有IPv4(0.0.0.0/0),然后保存即可。
配置完成后,在浏览器输入https://<服务器公网ip>:4000,即可访问到我们部署的hexo个人博客。
五、Hexo添加文章
Hexo博客的美化可自行搜索,此处仅介绍如何添加文章。
博客文章文件为.md文件,存放位置为source/_posts/ ,初始存在一个hello-world.md文件。
cd到该目录
cd source/_posts
以下为基础命令
rm source/_posts/<文件名称> #删除文件
hexo new "文章标题" #新建文章(标题不需要加.md)
vim <文件名称> #打开文件
Hexo更多使用方法请自行查找。
六、Hexo后台运行脚本(长期运行)
上述步骤四中运行的Hexo服务在断开云服务器远程连接后便会停止运行,无法正常投入使用。因此我们需要编写一个后台运行脚本,使其可以长期运行,只要云服务器未关闭,即可在浏览器中访问。
1.安装后台运行工具
使用pm2管理进程让hexo博客在服务器后台运行。
npm install -g gm2
npm install -g pm2
2.编写后台运行脚本
返回博客根目录(即一开始创建的那个新文件夹),创建一个文件run.js,并执行vim run.js 打开文件,添加以下内容后保存退出。注意按需更改脚本第二行-p 后的指定运行端口
const { exec } = require('child_process')
exec('hexo server -s -p 4000 ',(error, stdout, stderr) => {
if(error){
console.log('exec error: ${error}')
return
}
console.log('stdout: ${stdout}');
console.log('stdout: ${stderr}');
})
3.使用pm2运行脚本
执行以下指令,即可产期运行Hexo服务。
pm2 start run.js