安装guzzlehttp/guzzle时遇unsupported ALPN protocol错误求助
问题解决:Composer安装Guzzle时出现ALPN错误及段错误
核心原因
编译的PHP 7.3版本中curl扩展的ALPN支持存在缺陷,且PHP 7.3已达生命周期结束(EOL),新版本Composer对其兼容性不足,导致请求packagist时触发错误。
解决方案
1. 降级Composer至兼容PHP7.3的版本
PHP 7.3仅支持Composer 2.2.x及以下版本,执行以下命令替换现有composer.phar:
./bin/php -r "copy('https://getcomposer.org/download/2.2.24/composer.phar', 'composer.phar');"
重新执行安装命令:
./bin/php composer.phar require guzzlehttp/guzzle
2. 修复系统curl的ALPN支持
PHP的curl扩展依赖系统curl库,若系统curl未开启ALPN支持会触发该错误:
- 检查系统curl的ALPN支持:
curl -V
输出中包含ALPN: h2,http/1.1则说明支持;若不包含,需重新编译系统curl(确保依赖openssl 1.0.2及以上版本)。
- 重新编译PHP时指定正确的curl和openssl路径:
./configure --with-curl=/usr/local/curl --with-openssl=/usr/local/openssl make && make install
3. 临时禁用Composer的ALPN检测
创建或编辑~/.composer/config.json,添加配置强制禁用ALPN:
{ "config": { "curl.options": { "CURLOPT_SSL_ENABLE_ALPN": false } } }
之后重新执行Guzzle安装命令。
内容的提问来源于stack exchange,提问作者Lew
相关产品推荐
相关产品推荐

