ImLinNai3个月前更新关注私信 一、前置准备 一台安装了宝塔面板的服务器。支持SSH登录 已安装Docker 和 MySQL 8.0.35 服务 防火墙开放 8090 和 3306 端口 二、准备操作 确保已经安装了数据库和Docker,并放行了端口。 二、数据库创建和配置 1.创建数据库 在宝塔面板的数据库管理页面创建新的数据库。 2.设置数据库权限 在数据库→halo数据库→权限中设置访问权限为本服务器的内网IP和外网IP地址或地址段,本文以所有人可访问为例。 3.修改数据库的排序规则 在数据库→halo数据库→管理点击跳转到phpmyadmin管理页面,顶部导航的操作菜单,底部的排序规则修改为utf8mb4_0900_ai_ci点击执行后确认已修改成功即可。 4.添加数据库配置 在软件商店找到已安装的MySQL点击设置,进入配置文件菜单,在[mysqld]的结尾处添加配置。 default_authentication_plugin=mysql_native_password character-set-server=utf8mb4 collation-server=utf8mb4_0900_ai_ci bind-address=0.0.0.0 max_allowed_packet=64M 添加后点击保存按钮,点击服务菜单,将MySQL重启即可。 三、获取Halo 1.拉取Halo镜像 通过SSH登录,在命令行中拉取Halo的镜像,如下图显示表示拉取成功。 docker pull ghcr.io/halo-dev/halo:2.21.1 # 请在最后添加版本号,如不添加则拉取的镜像为旧版本 2.启动Halo容器 输入启动命令后将会生成配置目录,注意请在启动命令执行的20秒左右后停止容器运行并删除容器(本次临时启动的目的是为了获取到Halo生成的配置文件) # 临时启动Halo容器 docker run -itd --name halo-temp -v ~/.halo2:/root/.halo2 ghcr.io/halo-dev/halo # 20秒后停止并删除临时容器(保留配置目录) docker stop halo-temp && docker rm halo-temp 3.创建配置文件 在宝塔面板中点击文件进入/root/.halo2文件夹,可以看到有4个文件夹(根据上个步骤停止容器的时间,可能看到的文件数目不一样) 在此文件夹下创建application.yaml文件并进入,将下列代码粘贴进去,将其中的服务器IP替换成你的服务器公网IP,将数据库用户名和密码替换为上文中创建的用户名和密码,之后点击保存。 spring: r2dbc: # 连接地址(替换为你的服务器IP) url: r2dbc:mysql://服务器IP:3306/halo?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: halo # 数据库用户名 password: 123456 # 数据库密码 driver-class-name: io.r2dbc.mysql.MySqlConnectionFactoryProvider sql: init: mode: always # 允许自动创建表结构 使用服务器公网IP的原因是因为Docker和MySQL不互通,不能在内网中相互访问。 四、启动容器 在SSH命令行中输入执行命令再次启动容器。 docker run -itd \ --name halo \ -p 8090:8090 \ -v ~/.halo2:/root/.halo2 \ --restart=always \ ghcr.io/halo-dev/halo:2.21.1 可通过日志命令查看运行日志或报错信息。 #查看运行日志 docker logs -f halo 如果输入日志命令后日志没有中断,持续运行则表示安装成功。 如果你不需要通过域名来访问,则打开浏览器访问http://你的服务器IP:8090,进入Halo的初始化页面,按提示创建管理员账号,数据将存储在 MySQL 中,即到此就完成了。 如需要域名访问则此刻不可以进入Halo的初始化页面。 五、反向代理 如果不希望或不喜欢使用IP访问,则可配置反向代理功能使用域名代理IP地址访问网站。 请确保已完成以下内容: 你的域名已经解析到了服务器IP(服务商设置A记录) 服务器开放了80/443端口(默认开放) Halo在Docker中已经成功运行(日志无报错或中断) 在宝塔面板网站→反向代理菜单,点击添加反代,输入你的域名和代理地址(http://127.0.0.1:8090),如下图 点击确定保存后,反向代理即配置成功,可以为域名设置SSL证书实现https安全访问(宝塔免费证书Let’s Encrypt,有效期90天,到期后可重新获取证书)。 完成以上的所有步骤后,访问配置的域名进入Halo系统初始化即表示成功了,查看数据库中有extensions表则表示正在使用MySQL数据库。 如果Halo初始化页面出现红色警告框提示正在使用H2数据库,则表示MySQL数据库没有覆盖成功,请检查步骤再次尝试。 温馨提示:本文最后更新于2025-08-10 18:20:33,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长。 © 版权声明 版权声明 本站名称: 北牧视界 本站网址: https://www.northmu.cn 网站侵权说明: 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长邮箱:imlinnai@163.com 处理。 1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。 2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报 3 本站资源大多存储在云盘,如发现链接失效,请联系我们更新。 THE END教程指南# 宝塔面板 喜欢就支持一下吧点赞0赞赏 分享QQ空间微博QQ好友海报分享复制链接收藏