Windows环境安装Laravel时Composer提示http_proxy URL格式错误的解决咨询
故障场景
用户已将终端工作目录切换至 C:/Users/masab/AppData/Roaming/Composer,执行Laravel安装操作时弹出如下报错:
[ComposerDownloaderTransportException] Unable to use a proxy: malformed http_proxy url
require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-scripts] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] []…
故障核心原因
- 第一条报错是Composer读取到当前环境中配置的
http_proxy变量格式不合法,无法正常解析代理地址,直接中断下载流程 - 第二条弹出的
require命令参数帮助文本,是流程中断后Composer自动输出的提示信息,并非独立的额外故障
分步解决操作
- 排查当前终端的代理环境变量配置
依次执行以下命令查看变量值:
若输出值缺失echo %http_proxy% echo %https_proxy%http://协议前缀、夹带多余空格、包含无效字符,就属于格式异常的无效配置,刚好对应报错描述的malformed问题 - 清除当前会话的无效代理变量
直接在当前终端执行以下命令,清空临时环境的错误配置:
若为全局配置异常,需要打开Windows系统环境变量面板,在用户变量、系统变量列表中定位所有set http_proxy= set https_proxy=http_proxy、https_proxy、HTTP_PROXY、HTTPS_PROXY键值,对无效值直接删除,有效值调整为标准格式(形如http://127.0.0.1:7890) - 有代理需求时直接配置Composer内置代理规则
不需要依赖全局环境变量传参,直接将合法的代理地址写入Composer全局配置:composer config -g http-proxy "http://127.0.0.1:你的代理端口" composer config -g https-proxy "http://127.0.0.1:你的代理端口" - 配置完成后重新执行Laravel安装指令,即可验证故障是否排除
内容的提问来源于stack exchange,提问作者Mohammad Shakil

