前置条件
1、服务器(云服务器、VPS、ECS都可以);
需要有公网IP(v4或v6均可)
2、SSH工具(MobaXterm、Xshell、terminus都可以);
3、注册一个域名;
4、一个面板工具(个人推荐宝塔面板);
在购买云服务器之后,你将会得到SSH登录所需的用户名和密码
一、SSH登录并安装面板
1. 使用SSH连接服务器
这里以MobaXterm为例
①在Remote host
输入服务器的ip地址,勾选Specify username
,输入SSH的用户名,Port
端口默认为22
②点击OK,创建连接
③输入SSH登录密码
注意:输入密码时不会有显示,输入完成按下回车即可!
这里可以选择保存密码,方便下次登录
2. 安装面板
①输入以下命令安装宝塔面板
:
Centos安装脚本:
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu/Deepin安装脚本:
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Debian安装脚本:
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
如果不确定使用哪个Linux系统版本的,可以使用万能安装脚本:
万能安装脚本:
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh
②这里输入y进行安装
③接下来会询问是否开启SSL,我们不需要操作,默认不需要开启!
④等待安装完毕
⑤在安装完成后,会给出面板地址和登录面板需要的账号密码,请妥善保存!
二、登录面板安装软件
1. 登录面板
①使用安装面板时得到的账号密码
,登录面板的外网地址
2. 安装软件
②安装LNMP环境
等待几分钟等待安装完成
③安装docker
确定
④等待docker安装完毕
三、使用Docker部署Halo
①回到SSH终端,输入以下命令开始部署halo2
docker run \
-it -d \
--name halo \
-p 8090:8090 \
-v ~/.halo2:/root/.halo2 \
halohub/halo:2.2.0 \
--halo.external-url=http://localhost:8090/ \
--halo.security.initializer.superadminuser=admin \
--halo.security.initializer.superadminpassword=P@88w0rd
这里
~/.halo2
中的~
表示用户目录
- -it:开启输入功能并连接伪终端
- -d:后台运行容器
- –name:为容器指定一个名称
- -p:端口映射,格式为
主机(宿主)端口:容器端口
,可在application.yaml
配置。 - -v:工作目录映射。形式为:
-v 宿主机路径:/root/.halo2
,后者不能修改。 - halo.external-url :跳转链接,必须设置为你所绑定的域名
建议修改halo.security.initializer.superadminuser参数为自己的用户名
和修改halo.security.initializer.superadminpassword参数为自己的密码
如果要安装halo1,可以使用以下命令
- 创建 工作目录
mkdir ~/.halo && cd ~/.halo
- 下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
- (可选) 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml
- 拉取最新的 Halo 镜像
docker pull halohub/halo:1.6.0
- 创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0
- -it:开启输入功能并连接伪终端
- -d:后台运行容器
- –name:为容器指定一个名称
- -p:端口映射,格式为
主机(宿主)端口:容器端口
,可在application.yaml
配置。 - -v:工作目录映射。形式为:
-v 宿主机路径:/root/.halo
,后者不能修改。 - –restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
halo1不支持插件和多用户等新特性,但是胜在社区庞大
halo2尚在发展中,现阶段还是halo1更加稳定(推荐)
②等待片刻,自动拉取镜像和部署项目
等待执行完毕之后,就已经部署好了
四、设置反向代理
现在,我们可以通过`IP地址或域名`加上`端口`的方式访问博客在网址的后面加上/console
来配置初始化网站
例如:http://test.zust.online:8090/console
或者:http://192.168.31.29:8090/console
注意:账号和密码是在部署阶段设置的,请妥善保管!
但是这样访问博客非常的不优雅,所以我们需要反向代理
①进入面板后台,新建站点
②输入ip绑定的域名,设置网站为纯静态
③添加反向代理
现在就可以使用域名直接访问服务了
五、申请证书并设置SSL
我们每次打开博客的时候都会显示`不安全`,这样无形中降低了逼格,所以可以通过配置SSL来解决。同时SSL还将提高网页访问的安全性。
这里以阿里云为例,申请免费的SSL证书,其他平台网上有相关教程
1. 申请证书
①进入阿里云官网,在控制台中找到SSL证书(应用安全)
②选择SSL证书->免费证书->立刻购买
③在弹出窗口中选择免费证书,立刻购买
④回到刚刚的界面,点击创建证书
⑤点击证书申请
⑥输入完整域名,点击提交审核
⑦在你所用的DNS服务中添加他提供的解析记录,然后点击验证
⑧然后就会显示申请审核中,这时候等几分钟就申请好了
2. 配置SSL
①等申请通过后,我们就有了自己域名的SSL证书
②点击下载,然后在弹出页面中选择服务器类型为Nginx
③登录宝塔后台,选择自己博客的网站,点击设置
④选择SSL->当前证书 - [未部署SSL]
⑤我们下载的证书中有PEM
和KEY
两个文件
⑥直接用记事本打开,将证书内容复制进设置中
⑦保存并启用,然后勾选强制HTTPS
,点击保存
现在再通过域名访问,可以看到已经是https了,瞬间就高端了不少
用这个方法搭建,使用的是H2数据库,适用于测试环境,如果是生产环境请使用其他数据库
具体参考官方文档:Halo Documents