该错误源于某依赖包在 composer.json 中声明了仅支持64位PHP,而非Composer自身问题;常见于ext-gmp、ramsey/uuid或spatie/browsershot等包。

Composer 报错 “This package requires a 64-bit PHP installation”
这个错误不是 Composer 本身的问题,而是你正在安装的某个包(比如 ext-gmp 相关扩展、ramsey/uuid 某些版本、或某些二进制依赖如 spatie/browsershot)在 composer.json 的 require 或 platform 配置里显式声明了 "php": ">=8.1.0, 类似约束,或其依赖的扩展(如 gmp、bcmath)在 32 位 PHP 下无法正常加载 —— Composer 在解析依赖时提前校验失败。
确认当前 PHP 是 32 位还是 64 位
别猜,直接用 PHP 自带函数验证:
php -r "echo PHP_INT_SIZE === 8 ? '64-bit' : '32-bit'; echo PHP_EOL;"
如果输出 32-bit,那问题根源就在这里。常见于:
- Windows 上手动下载的旧版 XAMPP/WAMP,默认含 32 位 PHP
- macOS 使用 Homebrew 安装老版本 PHP(如 php@7.4),未指定架构
- Docker 构建时 base image 是 i386 或 arm32 镜像
强制跳过平台检查(仅临时调试用)
不推荐长期使用,但能快速验证是否真为位数问题:
立即学习“PHP免费学习笔记(深入)”;
- 加
--ignore-platform-req=php跳过 PHP 版本+位数校验:composer install --ignore-platform-req=php
- 或更彻底地忽略所有平台约束:
composer install --ignore-platform-reqs
- 注意:这不会让 32 位 PHP 正常运行需要 64 位整数的逻辑(比如大 UUID 运算、高精度时间戳),只是绕过安装阶段报错
根本解决:切换到 64 位 PHP 环境
这才是稳定方案。操作取决于你的系统:
- Windows:卸载旧 XAMPP,改用 windows.php.net 官方 64 位 ZIP 包,或换用 Laragon / XAMPP x64 版
-
macOS:用 Homebrew 重装指定架构:
brew uninstall php@8.2 && brew install --cask php@8.2
(新版 Homebrew 默认装 64 位;若仍不对,检查arch输出是否为arm64或x86_64) -
Docker:确保 base image 是
php:8.2-cli(官方镜像全为 amd64/arm64),而非php:8.2-cli-i386(极少见);检查docker info | grep Architecture
切完后务必运行 php -v 和前面的 PHP_INT_SIZE 检查双重确认。很多问题表面是 Composer 报错,实际是 PHP 运行时环境没对齐,尤其在 CI/CD 流水线里容易被忽略。











