worable's Blog

1Panel | 安装 Halo 应用报错404/500/502/504解决方法

从宝塔换到1Panel,想着Halo与这个1Panel都是飞致云家的,可能更方便部署维护...

结果套了cdn之后访问网站出现各种错误...还是需要自己探索才可以解决,并不能真的一键部署...

安装

就是正常安装。

安装MySQL数据库 & Halo-Pro

个人推荐这个视频教程:https://www.bilibili.com/video/BV1bZxceVEWz/

系统初始化

访问 你的域名/system/setup ,进入系统初始化页面。

报错解决方法

Halo容器一直在重启

那大概也在日志看到容器一直在重启,提示halo | Killed

这表示 容器 halo 被系统强制终止(Killed),通常不是由应用自身抛出的异常,而是 宿主机操作系统(Linux)主动杀掉了该进程

根本原因内存不足(OOM - Out Of Memory)

  1. 前往“应用商店 - 全部”,点击顶部的docker(容器)小图标。

截图 2026-01-14 20-23-40.png
  1. 点击编辑按钮。

截图 2026-01-14 20-25-24.png
  1. 翻到页面最低部,在卡片菜单栏选择“资源”,修改内存限制为512MB或更高。

截图 2026-01-14 20-27-10.png
  1. 点击底部“确认”按钮保存。

  2. 回到“应用商店 - 全部”,手动点击“启动“按钮再次启动容器。

截图 2026-01-14 20-15-48.png

首次部署halo,推荐设置内存限制为512MB或更高,如需节约内存,请在系统初始化页面配置完成后,修改内存限制为256MB。

404/500报错

那大概也在日志看到容器一直在报错,报 Connection validation failed

其实,使用1Panel自动部署的所有容器都无法正常连接数据库。当然,我在网上也找不到类似教程,最终在@youdiandongxi/1panel-mysql-error这篇文章找到了解决方法。

我结合自己的经验总结了一下,你可以继续跟着本站的教程修复此问题。

  1. 前往“数据库 - MySQL",点击“连接信息”按钮。

截图 2026-01-14 20-50-32.png
  1. 复制容器连接的地址,对应就是下图的1Panel-mysql-CK4l 这段内容。

截图 2026-01-14 20-51-20.png
  1. 前往“应用商店 - 全部”,点击顶部的docker(容器)小图标。

截图 2026-01-14 20-23-40.png
  1. 点击编辑按钮。

截图 2026-01-14 20-25-24.png

  1. 翻到页面最低部,在卡片菜单栏选择“命令”,修改Command输入框内的内容。

截图 2026-01-14 20-54-26.png
# 修改之前:
--spring.r2dbc.url=r2dbc:pool:mysql://mysql:3306/halo_ejt53t

# 修改之后:
--spring.r2dbc.url=r2dbc:pool:mysql://1Panel-mysql-CK4l:3306/halo_ejt53t

也就是将这一小段命令其中的mysql替换为1Panel-mysql-CK4l ,后面的命令保持原样。

  1. 点击底部“确认”按钮保存。

  2. 回到“应用商店 - 全部”,手动点击“启动“按钮再次启动容器。

截图 2026-01-14 20-15-48.png

502报错

截图 2026-01-14 20-13-58.png

遇到502报错那大概率是把容器关闭了,前往“应用商店 - 全部”,手动点击“启动”即可解决。

截图 2026-01-14 20-15-48.png

504报错

大概率是你cdn配置错了无法回源。