温馨提示×

ubuntu composer为何卡住

小樊
62
2026-10-07 14:48:12
栏目: 智能运维

在 Ubuntu 上使用 Composer 时“卡住”是非常常见的问题,通常不是程序死掉,而是在等网络或资源。下面按最常见原因给你梳理一下,并给出对应解决办法。


一、最常见原因:网络连接慢 / 被墙(90% 情况)

Composer 默认从 repo.packagist.org 和 GitHub 拉取数据,国内经常卡在:

  • Loading composer repositories with package information
  • Updating dependencies
  • 卡在 git clone

✅ 解决办法

1. 使用国内镜像(强烈推荐)

composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/

或(官方中国镜像):

composer config -g repos.packagist composer https://packagist.phpcomposer.com

查看是否生效:

composer config -g repos.packagist

2. 设置 GitHub Token(避免 API 限流)

composer config -g github-oauth.github.com your_token

Token 在 GitHub → Settings → Developer settings 生成。


二、Composer 在等 Git(SSH key / 权限)

如果依赖是 git@github.com:xxx/xxx.git:

  • 没配置 SSH key
  • 或 SSH 卡住等待输入密码

✅ 解决办法

  • 改用 HTTPS:
composer config -g github-protocols https
  • 或配置 SSH key:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

添加到 GitHub


三、内存不足(服务器卡死)

小内存机器(1G 或更低)容易卡在:

php composer.phar update

✅ 解决办法

php -d memory_limit=-1 composer.phar update

或限制并行:

COMPOSER_PROCESS_TIMEOUT=0 composer update

四、Composer 自身问题

1. 版本太旧

composer self-update

2. 缓存损坏

composer clearcache

五、调试 Composer 卡在哪

✅ 加 verbose 看真实状态

composer update -vvv

你会看到是:

  • 卡在 HTTP
  • 卡在 git
  • 卡在 autoload

六、最小化验证(排除项目问题)

mkdir test && cd test
composer init -n
composer require monolog/monolog -vvv

如果这里也卡 → 网络问题
如果不卡 → 你项目 composer.json 有问题


七、快速排查清单(照着做)

✅ 是否国内服务器
✅ 是否配置镜像
✅ 是否有 GitHub Token
✅ 是否内存不足
✅ 是否 SSH 卡住
✅ 是否 composer update -vvv 看日志


如果你愿意,可以把卡住时的最后几行输出(尤其是 -vvv 的)贴出来,我可以直接帮你定位是哪一环卡住的。

0 踩