Composer 默认不使用系统代理,需手动配置 http-proxy(或 https-proxy)全局或项目级参数,格式为 http://[user:pass@]host:port,支持基础认证;全局配置命令为 composer config -g http-proxy ,验证用 composer diagnose。

Composer 默认不使用系统代理,遇到网络限制时需要手动配置 HTTP 代理才能正常访问 Packagist 或 GitHub 等源。关键在于设置 http-proxy(或 https-proxy)全局或项目级配置,且需注意代理协议、认证和端口格式。
确认代理地址和端口
先确保你已有可用的 HTTP 代理服务(如 Squid、Charles、Clash 的 HTTP 端口,或公司提供的代理)。典型格式为:
-
http://user:pass@127.0.0.1:8888(带基础认证) -
http://192.168.1.100:3128(无认证) - 注意:必须以
http://开头;https://不被 Composer 支持作为代理地址
全局配置代理(推荐)
运行以下命令,Composer 会将配置写入 ~/.composer/config.json(Windows 为 %APPDATA%\Composer\config.json):
composer config -g http-proxy http://127.0.0.1:8888
如果代理需要用户名密码:
composer config -g http-proxy http://username:password@127.0.0.1:8888
配置后所有项目都会走该代理,无需重复设置。
临时禁用或清除代理
调试或切换网络时可快速关闭:
- 临时跳过代理(单次命令):
composer install --no-plugins --no-scripts不影响代理,但若想绕过,可先取消配置 - 删除全局代理:
composer config -g --unset http-proxy - 查看当前配置:
composer config -g http-proxy或composer config -g查全部
验证是否生效
执行 composer diagnose,输出中应显示:
再试 composer clear-cache 和 composer require monolog/monolog,若不再超时或报 400/503 错误,说明代理已正常工作。
基本上就这些。不需要改环境变量或 PHP 配置,Composer 自身的 proxy 设置足够可靠。注意别把 socks5 代理误填成 http-proxy——它不支持。










