温馨提示×

linux composer为啥慢

小樊
39
2026-10-28 03:18:46
栏目: 智能运维

在 Linux 上使用 Composer 感觉“慢”,通常不是单一原因,而是下面几类问题叠加导致的。我按最常见 → 较少见给你梳理,并附上对应解决办法。


一、网络问题(最常见)

1. 访问 packagist.org 慢 / 被墙

Composer 默认从 packagist.org 拉取包元数据,从 GitHub 下载代码。

表现

  • composer install 卡在 Loading composer repositories
  • 下载 zip 很慢

解决办法

# 使用国内镜像(推荐)
composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/
# 或
composer config -g repos.packagist composer https://packagist.phpcomposer.com

注意:镜像只解决“元数据 + 下载”,不解决你服务器到 GitHub 的网络问题


2. GitHub API 限流

没配置 token 时,Composer 匿名访问 GitHub API,容易被限流。

解决办法

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

GitHub → Settings → Developer settings → Personal access token


二、Composer 自身配置问题

3. 没开缓存

默认是有缓存的,但有些人会误关。

检查:

composer config -g cache-dir

清缓存有时反而能解决“卡死”:

composer clearcache

4. 每次都重新解析依赖

如果你经常:

  • 改 composer.json
  • 删 composer.lock
  • 在 CI 里每次都 rm -rf vendor

那当然慢。

✅ 正确做法:

  • 提交 composer.lock
  • 用 composer install 而不是 update

三、服务器 / 环境性能问题

5. 磁盘 IO 慢(尤其是云服务器)

Composer 会:

  • 解压大量小文件
  • 写 vendor/

在:

  • 低配云服务器
  • 网络盘 / NFS
  • Docker 挂载目录

会非常慢。

优化

  • vendor 放本地磁盘
  • Docker 用 volume 而不是 bind mount(或加 cache)
  • 提高 CPU / 内存

6. PHP 版本太低或配置差

Composer 2 比 1 快很多。

检查:

composer --version

✅ 建议:

  • PHP ≥ 7.4
  • Composer 2.x

升级:

composer self-update

四、依赖本身的问题

7. 依赖太多 / 开发依赖没分离

"require-dev": {
  "phpunit/phpunit": "..."
}

生产环境:

composer install --no-dev --optimize-autoloader

8. 使用 * 或 dev-master

会导致:

  • 频繁重新计算
  • 拉取不稳定版本

✅ 固定版本号


五、调试慢在哪一步

你可以先看清“卡在哪”:

composer install -vvv

常见卡点:

  • Loading composer repositories → 网络
  • Extracting archive → IO
  • Generating autoload files → 正常

六、一句话总结

Linux 上 Composer 慢,90% 是网络 + 镜像问题,剩下是磁盘 IO 和依赖管理方式。

如果你愿意,可以告诉我:

  • 服务器地区(国内 / 海外)
  • 是否 Docker
  • Composer 版本
  • 卡在哪一步

我可以直接给你一套最优配置。

0 踩