本文目录导读:

- 使用国内镜像源(最核心、最有效)
- 开启并行下载(提升包下载速度)
- 开启 Git 浅克隆(减少 GitHub 下载体积)
- 优化 Discord 通知(微优化,可选)
- 关闭 Xdebug(显著提升速度)
- 清理缓存(遇到卡死时)
- 终极手段:使用 Composer 代理插件(如 cpr)
- 总结推荐配置(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 install 或 composer update,你会发现速度有质的提升,如果仍然很慢,请检查你的网络环境,或者试试阿里云镜像源。