Search by

wiseadmin / wise-health-check

wiseadmin

WiseAdmin 环境与健康检测包 — 服务器环境诊断、PHP 扩展检查、目录权限验证与系统状态实时监控

Package info

github.com/hiwiseadmin/wise-health-check

pkg:composer/wiseadmin/wise-health-check

Statistics

Installs: 2

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-10-20 14:23 UTC

This package is auto-updated.

Last update: 2026-10-20 14:56:01 UTC


README

环境与健康检测包 — PHP 运行环境健康检测,基于 ThinkPHP 8 开发,支持命令行检测、Web 后台健康看板、多渠道告警集成

PHP Version ThinkPHP License Packagist

✨ 特性

  • 10 项核心检测:PHP 版本、扩展、目录权限、环境变量、数据库连接、Redis 连接、磁盘空间等
  • 生产环境专项检测:APP_DEBUG 检查、Xdebug 禁用检查、配置缓存检查
  • 命令行工具:php think wise:health:check 支持表格/JSON/静默三种输出模式
  • Web 健康看板:/admin/health Bootstrap 风格页面,可视化展示检测结果
  • 多渠道告警: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 风格界面,自动颜色标识状态

自定义检测器

  1. 实现 wise\health\contract\CheckerInterface 接口
  2. 将类名添加到配置 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