如果你只管理一台服务器,每次 WP Panel 发布新版本后,登录后台点一下“立即更新”还不算麻烦。
但如果你管理的是多台服务器,每次都要逐台登录、逐台检查、逐台更新,就会变成一件重复又容易遗漏的事情。
为了解决这个问题,WP Panel 增加了一个新的自动更新功能:你可以在后台手动开启它,让面板在合适的时间自动检查新版本,并在满足安全条件后自动完成更新。
这个功能默认关闭,不会影响现有服务器。你可以根据自己的习惯选择继续手动更新,或者开启自动更新。
自动更新是做什么的?
简单来说,自动更新就是让 WP Panel 自己完成这几件事:
- 定期检查是否有新版本。
- 判断这个版本是否符合你的自动更新策略。
- 等待发布文件和签名文件都准备好。
- 下载新版本面板程序。
- 校验文件是否完整、是否来自可信来源。
- 备份当前版本。
- 替换为新版本。
- 重启面板服务。
- 检查新版本是否正常运行。
- 更新成功或失败后记录日志,并在配置了邮件时发送通知。
整个过程尽量减少人工操作,同时保留必要的安全检查和回滚能力。
默认不会自动更新
自动更新功能默认是关闭的。
也就是说,升级到支持自动更新的新版本后,WP Panel 不会突然自己开始更新。你需要进入后台设置页,手动开启自动更新。
开启后,你还可以选择更新策略,例如:
- 只自动更新小版本修复。
- 自动更新所有正式版本。
如果你比较保守,可以只开启小版本自动更新。如果你希望多台服务器始终跟上最新正式版,也可以选择所有正式版自动更新。
自动更新不会频繁请求 GitHub
WP Panel 不会每隔几分钟就去 GitHub 查询一次新版本。
正常情况下,自动更新每天只会真正检查一次新版本。这样做有两个好处:
- 减少服务器不必要的网络请求。
- 当 WP Panel 用户数量增长后,不会给 GitHub 带来过高请求压力。
不过有一种情况例外:如果新版本已经发布,但签名文件还没有准备好,WP Panel 会在短时间内继续等待和重试。这个过程不会被当作更新失败。
为什么需要签名校验?
自动更新最重要的不是“快”,而是“安全”。
WP Panel 更新时不会直接下载一个文件就替换当前程序,而是会检查三个文件:
- wp-panel
- wp-panel.sha256
- wp-panel.sha256.sig
其中:
- SHA256 用来确认下载的程序没有损坏。
- Ed25519 签名用来确认校验文件确实来自可信发布者。
只有完整性校验和签名校验都通过,WP Panel 才会继续更新。
如果签名文件不存在、签名不匹配、校验失败,自动更新会停止,不会替换当前面板程序。
发布后不会立刻抢跑更新
新版本发布后,签名文件可能会晚几分钟上传。
因此 WP Panel 不会在发现新版本的一瞬间立刻更新,而是会等待一个发布延迟时间。这样可以避免新版本刚发布、相关文件还没完全准备好时就开始更新。
如果签名文件还没出现,面板会记录为“等待签名”,而不是“更新失败”。
更新前会先备份
真正替换程序之前,WP Panel 会先做两类备份:
- 备份当前面板二进制程序。
- 备份面板自己的 SQLite 数据库。
旧程序会保存为类似这样的文件:
/usr/local/bin/wp-panel.bak.v1.2.3.20260619-030000
数据库备份会通过 SQLite 的一致性备份方式生成,不是简单复制正在运行的数据库文件。
这样做的目的很简单:如果新版本更新后不能正常运行,面板有机会恢复到旧版本。
更新后会做健康检查
WP Panel 更新完成后,不只是重启一下就结束。
它会启动一个独立的健康检查进程,确认新版本是否真的运行正常。
健康检查会确认:
- 面板服务可以响应。
- 本机健康接口可以访问。
- 面板数据库可以读取。
- 核心数据表正常。
只有这些检查通过,自动更新才会被标记为成功。
如果你配置了 SMTP 邮件,更新成功后会收到通知邮件。
如果更新失败,会不会影响网站?
大多数情况下,自动更新失败不会影响已经运行的网站。
原因是 WP Panel 面板本身和网站服务是分开的:
- 网站由 Nginx、PHP-FPM、MariaDB 等服务提供访问。
- WP Panel 是管理这些服务的面板程序。
如果只是面板程序更新失败,通常影响的是“面板后台是否能打开”,而不是网站前台访问。
也就是说,即使面板更新失败,你的网站一般仍然会继续运行。
不过需要说明的是:如果某次新版本涉及 Nginx、PHP-FPM 配置重建,或者站点管理逻辑变更,理论上仍然存在影响站点配置的风险。因此自动更新设计里会尽量把失败停在替换面板程序阶段,并在出错时保留详细日志和备份。
更新失败后能自动恢复吗?
可以,WP Panel 会尽量自动恢复。
如果新版本重启后健康检查失败,面板会尝试:
- 恢复旧版本面板程序。
- 必要时恢复更新前的数据库备份。
- 重启旧版本面板服务。
- 记录失败原因。
- 如果配置了 SMTP,发送失败通知邮件。
不过这里要说清楚:任何自动恢复都不能承诺 100% 成功。
例如:
- 服务器突然断电。
- 磁盘满了。
- systemd 服务配置被手动改坏。
- 文件权限异常。
- 数据库文件所在磁盘损坏。
这些底层环境问题可能会影响自动恢复。
但在常见的更新失败场景里,例如新版本启动失败、健康检查不通过、签名或校验失败,WP Panel 都会尽量避免破坏当前可用版本,并保留恢复路径。
可以手动恢复吗?
可以。
自动更新前会保留旧版本二进制和数据库备份。如果自动恢复失败,管理员仍然可以通过 SSH 手动恢复。
旧版本面板程序会保存在:
/usr/local/bin/
文件名类似:
wp-panel.bak.v1.2.3.20260619-031500
数据库备份会保存在:
/www/server/panel/backups/panel-db/
文件名类似:
panel_20260619_031500.db
同时,WP Panel 会记录自动更新的阶段日志,方便判断失败发生在哪一步:
- 下载失败
- 签名等待
- 签名校验失败
- SHA256 校验失败
- 预检失败
- 备份失败
- 替换失败
- 重启失败
- 健康检查失败
- 回滚失败
这些日志可以帮助管理员更快定位问题。
自动更新会不会占用很多磁盘?
WP Panel 会在更新成功后清理旧备份,避免长期堆积。
当前策略是:
- 面板数据库备份保留最近 7 份。
- 面板二进制备份保留最近 5 份。
- 更新失败时不会立即删除相关备份,方便排查和恢复。
也就是说,自动更新不会无限制地保留历史文件。
适合谁开启自动更新?
自动更新适合这些用户:
- 管理多台服务器。
- 希望面板长期保持最新。
- 已经配置好 SMTP 邮件通知。
- 能接受在低峰时间自动重启面板服务。
- 希望减少重复登录后台更新的工作量。
如果你只有一台服务器,或者希望每次更新前都先阅读更新说明,也可以继续使用手动更新。
建议开启前先做什么?
开启自动更新前,建议先确认:
- 当前面板版本运行正常。
- 服务器磁盘空间充足。
- SMTP 邮件通知已配置。
- 你知道如何通过 SSH 登录服务器。
- 自动更新时间窗口设置在访问低峰期,例如凌晨。
自动更新不是强制功能,而是一个减少重复维护工作的工具。你可以根据自己的服务器数量和维护习惯选择是否开启。
总结
WP Panel 自动更新功能的目标不是简单地“自动替换文件”,而是在安全、稳定和可恢复之间取得平衡。
它会:
- 默认关闭。
- 每天低频检查新版本。
- 等待签名文件准备好。
- 校验 SHA256 和 Ed25519 签名。
- 更新前备份程序和数据库。
- 更新后做健康检查。
- 成功或失败后发送邮件通知。
- 失败时尽量自动回滚。
- 成功后清理旧备份,避免占用磁盘。
对于管理多台服务器的用户来说,它可以明显减少重复更新的工作量;对于普通用户来说,它仍然保持了可控、可关闭、可手动恢复的设计。