PHP Composer 加速技巧

wen PHP项目 1

本文目录导读:

PHP Composer 加速技巧

  1. 使用国内镜像源(最核心、最有效)
  2. 开启并行下载(提升包下载速度)
  3. 开启 Git 浅克隆(减少 GitHub 下载体积)
  4. 优化 Discord 通知(微优化,可选)
  5. 关闭 Xdebug(显著提升速度)
  6. 清理缓存(遇到卡死时)
  7. 终极手段:使用 Composer 代理插件(如 cpr)
  8. 总结推荐配置(Composer 2.x 用户)

在国内使用 Composer 时,由于网络原因(主要是访问 Packagist 官方源和 GitHub 不稳定),经常会导致下载速度极慢或直接失败,以下是几种最有效的 PHP Composer 加速技巧,按推荐程度排序:

使用国内镜像源(最核心、最有效)

这是最关键的一步。建议使用腾讯云镜像,它比较稳定且更新及时;阿里云也很快。

  • 方案 A:全局配置(推荐)—— 对所有项目生效 打开终端,运行以下命令将镜像源全局配置为腾讯云:

    composer config -g repo.packagist composer https://mirrors.tencent.com/composer/

    或者使用阿里云镜像:

    composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  • 方案 B:仅当前项目配置 如果不影响全局,建议只在需要加速的项目目录下运行(去掉 -g):

    composer config repo.packagist composer https://mirrors.tencent.com/composer/
  • 如何恢复官方源? 如果以后不再需要加速,可以删除全局配置:

    composer config -g --unset repos.packagist

开启并行下载(提升包下载速度)

Composer 默认是串行下载包的,速度较慢,可以开启并发下载。

  • 命令行参数(临时) 在安装时增加 --no-scripts--prefer-dist,并用 COMPOSER_PROCESS_TIMEOUT 调整超时,但最重要的参数是利用 composer 自带的并行配置。

  • 修改全局配置(永久)composer.json 或全局配置中加入以下设置:

    {
        "config": {
            "process-timeout": 2000,
            "parallel": 20,
            "preferred-install": "dist"
        }
    }

    可以通过命令行写入全局配置:

    composer config -g process-timeout 2000
    composer config -g parallel 20
    composer config -g preferred-install dist

开启 Git 浅克隆(减少 GitHub 下载体积)

如果安装的包必须从 Git 仓库拉取(而非直接下载 Zip 包),浅克隆可以避免拉取整个仓库历史,只拉取最新的 commit。

composer config -g github-protocols https
composer config -g git  -- --shallow-submodules

或者在 composer.json 中设置:

{
    "config": {
        "preferred-install": "dist",
        "git-shallow": true
    }
}

注:通常使用了国内镜像源后,绝大多数包都是直接下载 Zip 压缩包(dist),此时浅克隆的效果不明显。


优化 Discord 通知(微优化,可选)

默认情况下,Composer 安装时如果包有 scripts 事件,可能会触发 Slack/Discord 等通知,虽然默认关闭,但为了效率,可以在 composer.json 中确保 notify-on-install 设置为 false

composer config -g notify-on-install false

关闭 Xdebug(显著提升速度)

如果你的 PHP 环境开启了 Xdebug 扩展(用于本地调试),Composer 在执行时会加载它,速度会慢 5-10 倍

  • 临时关闭: 运行命令时通知 PHP 不加载 Xdebug:
    php -n /usr/local/bin/composer install
    # 或者针对 Windows 环境
    php -d xdebug.mode=off /path/to/composer.phar install
  • 建议: 在使用 Composer 时,最好用终端禁用 Xdebug,或者干脆在命令行 PHP 版本(CLI)中不要开启 Xdebug,只在 Web 服务器(Apache/Nginx)的 PHP-FPM 中开启。

清理缓存(遇到卡死时)

如果之前下载失败,可能会导致缓存损坏或残留垃圾文件,影响后续速度。

# 清空 Composer 缓存
composer clear-cache

终极手段:使用 Composer 代理插件(如 cpr)

如果你觉得上面几招还不够快,可以尝试使用 cpr 等第三方插件,它可以利用多线程并行下载包。

composer global require hirak/prestissimo

注意:prestissimo 插件目前对 Composer 2.x 版本已失效,因为 Composer 2 已经内置了并行下载功能,不需要这个插件,如果你用的是 Composer 2(现在普遍是 2.x),请直接使用上面的“开启并行下载”功能即可。


总结推荐配置(Composer 2.x 用户)

直接复制下面这段粘贴到终端执行一次,基本就能解决 90% 的慢问题:

# 1. 换腾讯云镜像
composer config -g repo.packagist composer https://mirrors.tencent.com/composer/
# 2. 开启高并发
composer config -g parallel 64
# 3. 下载包时优先用 Zip 压缩包
composer config -g preferred-install dist
# 4. 增加执行超时时间
composer config -g process-timeout 3000
# 5. 关闭安装通知
composer config -g notify-on-install false
# 6. 无需验证 SSL(不推荐,除非证书有问题)
# composer config -g secure-http false

执行完上述命令后,再次执行 composer installcomposer update,你会发现速度有质的提升,如果仍然很慢,请检查你的网络环境,或者试试阿里云镜像源。

抱歉,评论功能暂时关闭!