wiseadmin / wise-health-check
WiseAdmin 环境与健康检测包 — 服务器环境诊断、PHP 扩展检查、目录权限验证与系统状态实时监控
v1.0.1
2026-10-20 14:23 UTC
Requires
- php: >=8.1
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- topthink/framework: ^8.0
- wiseadmin/wise-support: 1.0.*
Requires (Dev)
- mockery/mockery: ^1.5
- phpunit/phpunit: ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-20 14:56:01 UTC
README
环境与健康检测包 — PHP 运行环境健康检测,基于 ThinkPHP 8 开发,支持命令行检测、Web 后台健康看板、多渠道告警集成
✨ 特性
- 10 项核心检测:PHP 版本、扩展、目录权限、环境变量、数据库连接、Redis 连接、磁盘空间等
- 生产环境专项检测:APP_DEBUG 检查、Xdebug 禁用检查、配置缓存检查
- 命令行工具:
php think wise:health:check支持表格/JSON/静默三种输出模式 - Web 健康看板:
/admin/healthBootstrap 风格页面,可视化展示检测结果 - 多渠道告警:HTTP 推送 + Webhook 推送,支持自定义签名
- 详细修复建议:每个异常项均输出具体的修复命令和配置指引
- 策略模式架构:检测器可插拔,支持自定义扩展
- 自动注册:通过 Composer
extra.think.services实现开箱即用
📦 安装
composer require wiseadmin/wise-health-check
🚀 快速开始
发布配置文件
php think wise:health:publish
基本检测
php think wise:health:check
输出表格形式的检测报告:
========================================
环境健康检测报告
========================================
PHP 版本: 8.1.12
环境: local
主机名: server-001
时间: 2025-06-15 22:30:00
+-------------------+--------+-----------------------------------------+
| 检测项 | 状态 | 结果 |
+-------------------+--------+-----------------------------------------+
| PHP 版本 | ✅ OK | PHP 8.1.12,满足最低版本要求 |
| PHP 扩展 | ✅ OK | 所有必需及推荐扩展均已加载 |
| 目录权限 | ❌ 错误 | 以下目录权限异常:runtime |
+-------------------+--------+-----------------------------------------+
汇总:共 8 项检测,✅ 7 通过,⚠️ 0 警告,❌ 1 错误
JSON 输出
php think wise:health:check --json
静默模式(仅返回状态码,适合 CI/CD)
php think wise:health:check --quiet
# 返回 0 = 全部正常,1 = 存在异常
触发告警
php think wise:health:check --alert
Web 健康看板
默认访问地址:/admin/health
- 权限控制:支持
none/login/auth三种模式 - 支持 AJAX/JSON 请求(添加
?format=json参数) - Bootstrap 5 风格界面,自动颜色标识状态
自定义检测器
- 实现
wise\health\contract\CheckerInterface接口 - 将类名添加到配置
checker数组中
use wise\health\context\HealthContext; use wise\health\contract\CheckerInterface; use wise\health\result\CheckResult; class MyChecker implements CheckerInterface { public function name(): string { return '自定义检测'; } public function run(HealthContext $context): CheckResult { /* ... */ } public function getFixSuggestion(): string { return '修复建议'; } }
⚙️ 配置
发布配置文件:
php think wise:health:publish
配置文件 config/wise-health-check.php 包含以下配置区域:
| 配置项 | 说明 |
|---|---|
checker |
基础检测器列表(按顺序执行) |
production_extra_checks |
生产环境额外检测项 |
thresholds |
阈值(PHP 最低版本、磁盘最低空间) |
check_directories |
需要检测权限的目录列表 |
alert |
告警配置(渠道、开关) |
route_path |
健康检查页面路由路径 |
告警配置
HTTP 推送
在 .env 中配置:
ENV_CHECK_ALERT_ENABLED=true ENV_CHECK_ALERT_HTTP_URL=https://your-alert-server.com/api/alerts
Webhook 推送(支持钉钉、企业微信)
ENV_CHECK_ALERT_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=xxx ENV_CHECK_ALERT_WEBHOOK_SECRET=your_secret
检测项清单
| 检测器 | 说明 | 环境 |
|---|---|---|
| PhpVersionChecker | PHP 版本兼容性 | 全部 |
| ExtensionChecker | 必需/推荐扩展加载状态 | 全部 |
| DirectoryPermissionChecker | 关键目录读写权限 | 全部 |
| EnvFileChecker | .env 文件及变量完整性 | 全部 |
| DatabaseConnectionChecker | 数据库连接连通性 | 全部 |
| RedisConnectionChecker | Redis 连接验证 | 全部 |
| DiskSpaceChecker | 磁盘剩余空间 | 全部 |
| AppDebugChecker | APP_DEBUG 状态 | 仅生产 |
| XdebugChecker | Xdebug 加载状态 | 仅生产 |
| CacheConfigChecker | 配置缓存状态 | 仅生产 |
📂 目录结构
src/
├── Service.php # 服务提供者
├── alert/
│ ├── AlertDriverInterface.php # 告警驱动接口
│ ├── HttpAlert.php # HTTP 告警推送
│ └── WebhookAlert.php # Webhook 告警推送
├── checker/
│ ├── AppDebugChecker.php # APP_DEBUG 检测
│ ├── CacheConfigChecker.php # 配置缓存检测
│ ├── DatabaseConnectionChecker.php # 数据库连接检测
│ ├── DirectoryPermissionChecker.php # 目录权限检测
│ ├── DiskSpaceChecker.php # 磁盘空间检测
│ ├── EnvFileChecker.php # 环境变量检测
│ ├── ExtensionChecker.php # PHP 扩展检测
│ ├── PhpVersionChecker.php # PHP 版本检测
│ ├── RedisConnectionChecker.php # Redis 连接检测
│ └── XdebugChecker.php # Xdebug 检测
├── command/
│ ├── Check.php # wise:health:check
│ ├── EnvCheck.php # 环境检测命令
│ ├── EnvPublish.php # 环境配置发布
│ └── Publish.php # 配置发布命令
├── context/
│ └── HealthContext.php # 健康检测上下文
├── contract/
│ └── CheckerInterface.php # 检测器接口
├── manager/
│ └── CheckManager.php # 检测管理器
├── result/
│ └── CheckResult.php # 检测结果
└── trait/
└── CommandTrait.php
架构
┌──────────────────────────────────────────────┐
│ CheckManager │
│ loadCheckers() → runAll() → getResults() │
└────────────┬─────────────────────────────────┘
│ 调度
┌────────┴──────────┬───────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Checker │ │ Checker │ │ Checker │ ...
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
└─────────┬───────┴─────┬──────┘
▼ ▼
HealthContext CheckResult
│
think\App / Env / Config
📄 License
MIT