最稳解法是执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,必须加-g写入全局配置文件,否则仅修改当前项目;验证时输出应为含阿里云url的json对象。

composer config -g repo.packagist 命令必须加 -g 才生效
不加 -g 只改当前项目 composer.json 里的 repositories 字段,新项目还得重配,等于白干。全局配置写入 ~/.composer/config.json,所有后续 composer install 都走阿里云镜像。
执行这行命令即可:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
- 验证是否成功:运行
composer config -g repo.packagist,输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 如果输出是字符串而非 JSON 对象,说明旧版 Composer(
- 换源后务必运行
composer clear-cache,否则缓存仍指向 packagist.org - 禁用 fallback 到官方源(防超时兜底):
composer config -g repos.packagist false
ThinkPHP 项目里别留 @dev 和 prefer-stable: false
这些配置会让 Composer 主动去拉取不稳定分支,触发大量远程元数据查询,解析阶段就卡住十几秒。ThinkPHP 生态里常见 "topthink/framework": "^6.3" 这类宽泛约束,再叠上 @dev,求解器会穷举所有可能组合。
- 检查项目根目录
composer.json,删掉所有显式出现的"dev-master"、"@dev"、"dev-develop" - 确认
"minimum-stability"是"stable",不是"RC"或"beta" - ThinkPHP 6.x/8.x 推荐锁定小版本,例如
"topthink/framework": "^6.3.0",避免自动升到未经充分测试的补丁版
安装时用 --no-dev --no-scripts --no-autoloader 加速
CI/CD 或本地首次部署时,完全不需要 PHPUnit、phpstan、测试自动加载、缓存生成这些开发期功能。跳过它们能省下 40%+ 时间,且不损失运行时能力。
- 推荐完整命令:
composer install --no-dev --no-scripts --no-autoloader --prefer-dist -
--no-dev跳过require-dev里的大块头(如phpunit/phpunit) -
--no-scripts避免post-autoload-dump等脚本因权限或路径失败中断安装 -
--no-autoloader不生成vendor/autoload.php,装完再单独跑composer dump-autoload -o
Windows 下还要关 Xdebug 和检查 PHP 路径
PHPStorm 默认开启 Xdebug,它会让 Composer 解析速度下降 5 倍以上——你根本没意识到它全程参与了依赖计算。另外,Windows 上路径含空格或中文会导致 composer create-project 失败或 autoload 异常。
- 临时关闭 Xdebug:编辑
php.ini,注释掉zend_extension=...xdebug...行,或运行php -d zend_extension= -v验证 - 确保 PHP 安装路径不含空格和中文,例如用
C:\php8,别用C:\Program Files\php - PATH 环境变量添加后,必须新开命令行窗口,否则
php -v和composer都不认新路径
@dev,三者叠加会让加速效果归零。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











