温馨提示×

ubuntu composer如何使用代理

小樊
42
2025-11-29 00:05:35
栏目: 智能运维

Ubuntu 下为 Composer 配置代理

一 准备与原则

  • 准备代理的 IP 地址端口(如公司代理或本机 SOCKS/HTTP 代理),必要时准备认证信息。Composer 支持通过环境变量或配置文件使用代理,且建议同时设置 HTTP 与 HTTPS,并配置 no_proxy 排除内网地址。若在企业内网,还需确保防火墙与代理策略允许访问外部资源。

二 方法一 设置环境变量(临时或持久)

  • 当前终端会话临时生效(推荐先测试)
    • HTTP 代理
      • export http_proxy=http://代理地址:端口
      • export https_proxy=http://代理地址:端口
    • SOCKS5 代理(部分工具支持;若 Composer 走 curl 且支持,可用)
      • export https_proxy=socks5://127.0.0.1:1080
      • export http_proxy=socks5://127.0.0.1:1080
    • 排除本地与内网
      • export no_proxy=localhost,127.0.0.1,.example.com
  • 全局持久生效(所有新开终端均生效)
    • 写入用户配置文件(如 ~/.bashrc 或 ~/.zshrc)
      • echo ‘export http_proxy=http://代理地址:端口’ >> ~/.bashrc
      • echo ‘export https_proxy=http://代理地址:端口’ >> ~/.bashrc
      • echo ‘export no_proxy=localhost,127.0.0.1,.example.com’ >> ~/.bashrc
      • source ~/.bashrc
  • 说明
    • 变量名可用大小写形式(HTTP_PROXY/HTTPS_PROXY 亦可)。
    • 若代理需要用户名密码:export http_proxy=http://用户名:密码@代理地址:端口。

三 方法二 使用 Composer 配置项

  • 全局启用代理(所有项目生效)
    • composer config -g http-proxy http://代理地址:端口
    • composer config -g https-proxy http://代理地址:端口
  • 仅当前项目启用
    • 进入项目根目录后执行
      • composer config http-proxy http://代理地址:端口
      • composer config https-proxy http://代理地址:端口
  • 取消代理
    • 全局:composer config -g --unset http-proxy
    • 全局:composer config -g --unset https-proxy
    • 项目:composer config --unset http-proxy(在项目目录执行)
  • 说明
    • 上述为 Composer 内置的代理配置项,优先级通常高于环境变量(以实际环境为准)。

四 验证与常见问题

  • 验证是否走代理
    • 执行 composer config -g http-proxy 与 composer config -g https-proxy 查看是否生效;或在命令前临时导出变量后运行 composer diagnose/install,观察是否能正常解析与下载。
  • 常见故障排查
    • 连接被拒绝或超时:检查代理地址、端口、协议(HTTP/HTTPS/SOCKS)是否正确;必要时改用 SOCKS5 或确认公司代理策略。
    • 本机代理未监听或被占用:确认本地代理(如 1080 端口)已启动且允许来自局域网的连接。
    • localhost 被代理导致本地服务异常:确保 no_proxy 包含 localhost,127.0.0.1
    • 公司网络限制:联系 IT 管理员放行相关域名/端口或使用企业代理。

五 网络受限时的替代方案

  • 切换国内镜像源(无需代理即可加速)
    • 全局:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
    • 项目:在项目目录执行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/
  • 调整超时与重试
    • composer config -g http-timeout 600
    • composer install --prefer-dist --retry-auth-failure=false
  • 清理缓存并重试
    • composer clear-cache
    • 必要时删除 vendor/composer.lock 后重新安装。

0