Halo2网站搭建全流程记录

LiFasT
LiFasT
Published on 2024-05-13 / 131 Visits
0
0

本篇文章主要记录本网站的建立流程,便于后期维护。本文纯个人手写,内容可能存在错误或漏洞,疑问和建议可以下面评论。

1.准备工作

  • 一个拥有公网的IP的服务器(通过阿里云、腾讯云等获得)

  • 一个域名(非必须)

  • 国内服务器进行ICP备案和公安备案

2.安装宝塔面板

我的服务器系统是Centos系统。

使用以下Centos系统脚本安装宝塔:

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

脚本来源

3.安装Ngnix,Docker,Docker Compose

首次进入宝塔时有引导,根据引导完成安装任务。

4.安装Halo

Halo2文档官网

本站是通过Halo2建立的,Halo2是一个强大易用的开源建站工具。

我这里是通过Docker Compose进行部署,并且我已经在宝塔上安装并建立了一个数据库,所以在安装Halo2的时候直接引入即可。

version: "3"

services:
  halo:
    image: halohub/halo:2.15
    restart: on-failure:3
    network_mode: "host"
    volumes:
      - ./halo2:/root/.halo2
    command:
      # 修改为自己已有的 MySQL 配置
      - --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/数据库名
      - --spring.r2dbc.username=用户名
      - --spring.r2dbc.password=数据库密码
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=https://www.lifast.cn/
      # 端口号 默认8090
      - --server.port=8090

在宝塔Docker的编排模板菜单中添加以上的模板,再点击容器菜单的创建容器,选择容器编排,再选择以上代码的容器编排模板。

等待创建完成后,通过8090端口的/console的网站即可进入Halo2的后台。若无域名,以上步骤即为全部过程。

5.域名解析

通过各云服务商进行该操作,以下是阿里云的界面:

傻瓜操作,根据提示和需要完成即可。完成此步,域名会被解析到你的服务器上,可以通过该网站测试是否生效。

6.申请SSL证书

SSL证书是HTTPS的关键,市面上有很多申请的办法,这里以阿里云为例:

进入阿里云控制台搜索SSL,进入数字证书管理服务管理控制台,按下图和阿里云的提示完成申请

申请完成后点击下载,获得KEY和PEM。注意证书的有效期,记得及时续签,以免影响正常业务,也可以选择付费服务自动续费。

7.反向代理

接下来最后一步就是完成反向代理,关于反向代理,以下放一点资料:

反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

资料来源:腾讯云开发社区

Halo2官网给出的建议是配合Nginx Proxy Manager进行反向代理,但是宝塔面板在初始化时已经安装了Ngnix,所以直接在宝塔面板中进行配置即可,以下是教程:

  1. 进入宝塔面板的网站菜单

  2. 进入PHP项目点击添加站点(解释一下,单纯的反向代理无法用SSL协议)

  3. 域名填写购买的域名,其余无需操作

  4. 点击设置刚新建的站点,在SSL中填写KEY和PEM

  5. 反向代理菜单点击添加反向代理

  6. 代理名称自拟,目标URL填写Halo2网站的IP(IP+端口号),发送域名会自动获取

至此,所有任务都完成,通过Https协议和域名就可以访问网站。

8.常见问题

  • 无法访问到网站

首先检查一下端口有没有放行,不只是服务器提供商(阿里云),还要检查宝塔面板。重点放行80(HTTP)、443(HTTPS)、8090(Halo)端口,只有放行这些端口才能访问到网站。

  • 只能通过IP,不能通过域名访问

检查一下域名解析,Ping域名检查解析出来的IP地址。检查反向代理是否正确,刷新DNS缓存。

  • 只能通过HTTP协议访问,不能使用HTTPS访问

检查443端口是否放行,检查SSL证书是否过期或错误。


Comment