可通过设置PHP_IPV4=1或PHP_IPV6=1环境变量强制Composer使用IPv4或IPv6,Linux/macOS用PHP_IPV4=1 composer install,Windows CMD用set PHP_IPV4=1 && composer install,PowerShell用$env:PHP_IPV4="1"; composer install,该方法兼容Composer≥1.0且无需修改配置。

可以通过设置环境变量来强制 Composer 使用 IPv4 或 IPv6,无需修改源码或配置文件。
使用 PHP_IPV4 环境变量强制 IPv4
在运行 Composer 命令前,设置 PHP_IPV4=1 环境变量。Composer 会通过 PHP 的流上下文自动限制 DNS 解析和连接只走 IPv4。
- Linux/macOS:执行
PHP_IPV4=1 composer install - Windows(CMD):执行
set PHP_IPV4=1 && composer install - Windows(PowerShell):执行
$env:PHP_IPV4="1"; composer install
使用 PHP_IPV6 环境变量强制 IPv6
类似地,设置 PHP_IPV6=1 可让 Composer 优先尝试 IPv6 连接(前提是系统和网络支持)。
- Linux/macOS:
PHP_IPV6=1 composer update - 注意:若本地没有可用 IPv6 路由,命令可能超时或失败,需确认网络环境支持
临时禁用 IPv6(等效于强制 IPv4)
如果环境变量方式不生效(如旧版 Composer),可直接关闭系统级 IPv6(仅限调试):
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
- Linux:临时禁用
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 - macOS:IPv6 通常无法全局禁用,建议优先用
PHP_IPV4=1 - 不推荐长期禁用,仅用于验证是否为 IPv6 连接问题
验证当前使用的 IP 协议
Composer 本身不输出协议信息,但可通过抓包或日志辅助判断:
- 加
-v参数查看详细请求 URL 和响应头,结合tcpdump或Wireshark观察实际连接目标 IP - 例如:运行
PHP_IPV4=1 composer require monolog/monolog -v 2>&1 | grep "Resolving",再比对解析出的 IP 是否全为 IPv4 地址
基本上就这些。环境变量方式兼容大多数 Composer 版本(≥1.0),且不影响全局配置,最稳妥也最常用。









