spatie/laravel-health 要求 PHP 8.1+,低于该版本会因解析失败或函数缺失报错;需确认 CLI PHP 版本、启用必要扩展、启用 Package Discovery,并执行 health:install 注册路由。

直接装不上,大概率是 PHP 版本或扩展没对齐,不是 Composer 本身的问题。
spatie/laravel-health 要求 PHP 8.1+,低于这个版本会报 ParseError 或 Class "Spatie\Health\Checks\Checks\Check" not found
这个包从 v3 开始彻底放弃 PHP 7.x,连最低的 composer install 都会失败——不是报错“找不到包”,而是解析 vendor/spatie/laravel-health/src/Checks/Checks/Check.php 时直接崩溃。Laravel 10 默认要求 PHP 8.1,但很多老项目还卡在 8.0 或更低。
- 运行
php -v确认实际 CLI 使用的 PHP 版本(别只看phpinfo()里的 Web 版本) - 如果用 XAMPP/MAMP,CLI 的 PHP 常常指向系统自带旧版,需手动加软链或改
$PATH - 确认
ext-json、ext-mbstring、ext-openssl全部启用(php -m | grep -E "(json|mbstring|openssl)")
Composer require spatie/laravel-health 失败:常见于 Laravel 9 以下或未启用自动发现
该包依赖 Laravel 的 Package Discovery 机制自动注册服务提供者,Laravel 5.5+ 默认开启,但如果你关了 laravel/tinker 或手动清过 bootstrap/cache/packages.php,Discovery 可能失效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先执行
composer require spatie/laravel-health,成功后检查config/app.php是否自动加了Spatie\Health\HealthServiceProvider::class - 如果没有,手动加到
providers数组末尾(Laravel 9+ 不再需要aliases) - 再跑一次
php artisan vendor:publish --provider="Spatie\Health\HealthServiceProvider",它会生成config/health.php - 别跳过
php artisan health:install,它会在routes/web.php插入健康检查路由(默认/health),否则访问 404
安装后访问 /health 返回 500,日志里出现 Call to undefined function Spatie\Health\Checks\Result\is_string()
这是 PHP 8.0 和 8.1 的函数签名差异导致的兼容性陷阱:is_string() 在 PHP 8.0 是全局函数,8.1+ 才正式进入核心;但 spatie/laravel-health v3.x 的某些 Result 类里直接调用了它,没做版本判断。
- 最稳解法:升级 PHP 到 8.1.0+(推荐 8.1.28 或 8.2.x LTS)
- 临时绕过:降级到
spatie/laravel-health:^2.18(支持 PHP 8.0),但会丢失 v3 的并发检查、自定义 UI 等特性 - 别碰
composer update spatie/laravel-health升级小版本,v3.0.x → v3.1.x 可能引入新依赖(如spatie/async),触发额外扩展要求(pcntl、posix)
真正卡住人的地方往往不是命令输错,而是 PHP CLI 版本和 Web 版本不一致、或者 php artisan 跑在旧环境里却以为配置生效了。健康检查路由一旦注册,就依赖整个 Laravel 启动流程,中间任何环节(config cache、opcache、甚至 .env 里 APP_DEBUG=false 掩盖真实错误)都可能让 /health 黑屏。

















