答案:优先将 Composer 配置中的 HTTP 仓库改为 HTTPS 以解决连接被拒问题。首先检查配置 composer config --list,确认 repositories 是否使用 HTTP,如存在则替换为 HTTPS 源,例如阿里云或 Laravel China 的 HTTPS 镜像;随后清除缓存 composer clear-cache。若在安全内网环境可临时关闭 secure-http,但不推荐生产使用,并需确保 PHP 启用 OpenSSL 扩展及正确 CA 证书路径。

当你使用 Composer 安装或更新包时,遇到 "Your configuration does not allow connections to http" 错误,通常是因为 Composer 默认禁止通过不安全的 HTTP 协议访问仓库,以防止潜在的安全风险。解决这个问题的核心是确保使用 HTTPS,或者在明确知晓风险的前提下允许 HTTP 连接。
最常见的原因是项目或全局配置中指定了使用 HTTP 的自定义仓库(如私有镜像或国内镜像),而 Composer 2.0+ 默认禁止这类连接。
你可以通过以下命令查看当前配置:
composer config --list重点关注 repositories 配置项。如果发现类似下面的内容:
"repositories": { "packagist": { "type": "composer", "url": "http://packagist.org" } }需要将其改为 HTTPS 版本:
composer config --global repo.packagist composer https://packagist.org如果你在中国大陆,可能为了加速访问使用了 HTTP 镜像(如旧版阿里云、华为云等)。应切换到支持 HTTPS 的现代镜像源。
例如,使用阿里云 HTTPS 镜像:
composer config --global repo.packagist composer https://mirrors.aliyun.com/composer/或使用 Laravel China 的镜像:
composer config --global repo.packagist composer https://packagist.laravel-china.org完成后运行 composer clear-cache 清除缓存,再尝试安装。
如果你在内网环境中使用私有仓库,并且确认网络安全,可以手动允许 HTTP 连接。但这不推荐用于生产或公网环境。
在项目的 composer.json 中添加如下配置:
"config": { "secure-http": false }这会关闭对 HTTPS 的强制要求。注意:这样做会使你暴露于中间人攻击风险中。
虽然错误信息指向 HTTP 问题,但也可能是 PHP 无法正确处理 HTTPS 请求(如缺少 OpenSSL 扩展或 CA 证书路径错误)。
检查 php.ini 中是否启用:
extension=openssl并确保 curl.cainfo 或 openssl.cafile 指向有效的 CA 证书 bundle:
curl.cainfo = "/path/to/cacert.pem" openssl.cafile = "/path/to/cacert.pem"可以从 https://curl.se/ca/cacert.pem 下载最新证书。
基本上就这些。优先推荐使用 HTTPS 镜像源,避免关闭 secure-http。安全和速度可以兼顾,关键是及时更新配置。
以上就是Composer如何解决"Your configuration does not allow connections to http"错误的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号