php项目依赖安装卡在loading或downloading阶段,根本原因是直连国内无法访问的packagist.org;应按三步配置阿里云镜像:全局配置需-correct执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(-g、单数repo.packagist、末尾斜杠缺一不可),验证输出为完整json,注意用户上下文;项目级推荐腾讯云镜像,用composer config repo.packagist或手动编辑composer.json的repositories字段;临时切换可用--repository参数或composer_repo_packagist环境变量;换源后仍卡顿需清缓存、删vendor与lock文件再重装。

PHP项目依赖安装卡在Loading composer repositories或Downloading阶段,基本可以确定是还在直连https://packagist.org——这不是你网络差,而是该源在国内无CDN节点、DNS污染严重、TLS握手频繁失败导致元数据根本拉不下来。
全局配置阿里云镜像(推荐个人开发机使用)
这条命令必须一次写对三个硬性条件,漏一个就静默回退到官方源,不报错也不提示:
第一步:执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
注意:【-g不能省,repo.packagist是单数且小写,中间的composer是type值不是注释,URL末尾必须带斜杠/】。写成repos.packagist、漏掉composer、少斜杠都会导致404或fallback。
第二步:验证是否真写进去了——运行composer config -g repo.packagist,输出必须是完整JSON对象,例如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。如果返回空、null、https://packagist.org或报错,说明没生效。
第三步:确认当前用户上下文——phpEnv或宝塔环境下,若用sudo -u www执行命令,实际写入的是www用户的~/.composer/config.json,不是你登录用户的配置文件。
项目级配置腾讯云镜像(适合CI/CD与团队协作)
进入你的项目根目录(确保composer.json存在),执行以下命令:
方法一:覆盖式写入(适用于干净项目)composer config repo.packagist composer https://mirrors.cloud.tencent.com/composer/
方法二:手动编辑composer.json(适用于已有私有源)
在composer.json顶层添加"repositories"字段,结构如下:
"repositories": { "packagist": { "type": "composer", "url": "https://mirrors.cloud.tencent.com/composer/" } }
注意:【不要直接覆盖原有repositories数组,否则可能误删私有包源】。如果原文件里已有"repositories"且为对象结构,方法一可安全合并;若为数组,则需手动追加而非替换。
临时切换镜像源(单次命令有效)
适合快速验证某个镜像是否可用,或绕过当前全局配置问题:
执行composer create-project laravel/laravel myapp --repository=https://mirrors.aliyun.com/composer/
这个--repository参数只对当前命令生效,不修改任何配置文件。但要注意:部分旧版Composer不支持该参数,遇到Unknown option: repository时,先升级composer self-update。
另一种临时方式是用环境变量:COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/ composer install -vvv,退出终端即失效,适合CI脚本中快速验证。
换源后仍卡住?清缓存+重装依赖
镜像配置正确但composer install仍卡在“Resolving dependencies”或报Class not found,说明vendor/autoload.php虽存在,但类映射缺失——本质是依赖没装全:
第一步:清空本地缓存 → composer clear-cache
第二步:删除项目下vendor/目录和composer.lock文件
第三步:重新执行composer install -vvv,滚动日志底部,确认出现类似Reading packages.json from cache at .../https---mirrors-aliyun-com-composer/packages.json字样,才算真正走镜像源。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











