应优先使用--ignore-platform-req=xxx精准跳过(如php或ext-gd),仅在必要时用--ignore-platform-reqs全局跳过;报“platform does not meet requirements”是Composer 2.2+默认校验本地环境与composer.json中require或config.platform不匹配所致,需明确跳过项并确保运行时环境实际达标。

跳过 Composer 平台检查不是“能不能”,而是“跳哪一项、为什么跳、谁来兜底”。--ignore-platform-reqs 最快但最危险;日常开发和 CI 应优先用 --ignore-platform-req=xxx 精准绕过,比如只跳 php 或 ext-gd。
composer install 报 “Your platform does not meet the minimum requirements” 怎么办
这是 Composer 2.2+ 默认开启的 platform-check 在起作用——它比对的是你本地真实环境(php -v、php -m、系统库)和 composer.json 里声明的 require 或 config.platform。不是网络问题,也不是锁文件损坏。
- 常见触发点包括:CI 构建机 PHP 是 8.1,但
composer.lock记录的是 PHP 8.2 的依赖解析结果 - 本地没装
ext-gd,但某个包在require里写了"ext-gd": "*" -
composer.json里配置了"config": {"platform": {"php": "8.3.0"}},而你本地是 8.2
--ignore-platform-req=php 和 --ignore-platform-reqs 有什么区别
前者只跳过 PHP 版本校验,后者跳过全部平台项(PHP + 所有扩展 + lib)。CI/CD 中推荐前者,既绕过卡点,又保留对扩展的检查,避免上线后报 Class 'Redis' not found 这类运行时错误。
-
composer install --ignore-platform-req=php:适合本地 PHP 版本略低,但扩展齐全 -
composer install --ignore-platform-req=ext-gd:适合缺图处理扩展,但 PHP 版本没问题 - 可叠加多个:
composer install --ignore-platform-req=php --ignore-platform-req=ext-igbinary -
--ignore-platform-reqs=true是非法写法,Composer 直接报错
如何永久关闭 platform-check(仅限当前项目)
别碰 composer global config,那会污染所有项目。唯一安全做法是在项目级 composer.json 的 config 段加:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
{
"config": {
"platform-check": false
}
}
这个设置只对当前项目生效,且优先级高于全局配置。注意:"platform-check": false 只跳过“你有没有”的检查,不取消 config.platform 的模拟行为——如果同时用了 "platform": {"php": "8.1"},Composer 仍按 PHP 8.1 解析依赖,只是不再验证你本地是否真有 8.1。
create-project 也卡住?参数必须显式加
composer create-project 同样受 platform-check 约束,而且更早、更严格。很多人加了 --no-interaction 或 --quiet 仍失败,是因为这些参数根本不影响平台校验。
- 必须显式传参:
composer create-project laravel/laravel myapp --ignore-platform-reqs - 若只想跳特定扩展:
composer create-project laravel/laravel --ignore-platform-req=ext-zip --ignore-platform-req=ext-pdo - 扩展名必须和
php -m输出一致,比如是ext-curl,不是curl或php-curl
真正容易被忽略的是:跳过检查 ≠ 解决兼容性。比如你忽略 ext-redis 成功安装了 Laravel Octane,但运行 php artisan octane:start 时仍会因 Class 'Swoole\Http\Server' 报错——因为 --ignore-platform-reqs 不影响运行时环境本身。

















