ThinkPHP安装慢主因是Composer默认走packagist.org导致超时卡顿,应全局切换阿里云镜像(composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)、禁用fallback、清理缓存、删除@dev约束、安装时加--no-dev --no-scripts --no-autoloader参数。

ThinkPHP安装慢,八成是 Composer 在原路拉包——默认走 packagist.org,国内直连极不稳定,超时、重试、fallback 到官方源反复横跳,composer create-project topthink/think 卡在「Resolving dependencies」十几分钟很常见。直接换阿里云镜像 + 清缓存 + 关掉干扰项,5 秒内完成依赖解析不是问题。
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 对象,不是字符串) - 禁用 fallback:
composer config -g repos.packagist false,防止网络抖动时自动切回packagist.org导致卡死
ThinkPHP 项目里别留 @dev 和 prefer-stable: false
这些配置会让 Composer 主动拉取不稳定分支,触发大量远程元数据查询,解析阶段就卡住。ThinkPHP 生态里常见 "topthink/framework": "^6.3" 这类宽泛约束,再叠上 @dev,求解器会穷举所有可能组合。
- 检查项目根目录
composer.json,删掉所有显式出现的"dev-master"、"@dev"、"dev-develop" - 确认
"minimum-stability"是"stable",不是"RC"或"beta" - 推荐锁定小版本:
"topthink/framework": "^6.3.0",避免自动升到未经充分测试的补丁版
安装时加 --no-dev --no-scripts --no-autoloader
CI/CD 或本地首次部署时,完全不需要 PHPUnit、phpstan、测试自动加载、缓存生成这些开发期功能。跳过它们能省下 40%+ 时间,且不损失运行时能力。
立即学习“PHP免费学习笔记(深入)”;
- 完整命令:
composer create-project topthink/think tp6 --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 失败。
- 临时关闭 Xdebug:
php -d xdebug.mode=off -v确认 CLI PHP 已禁用 - 检查 PHP 路径:
where php(Windows)或which php(macOS/Linux),确保没混用不同版本 - 避免在中文路径或带空格路径(如
C:\Program Files\)下执行安装命令
最易被忽略的是:换源后必须 composer clear-cache,否则缓存仍指向 packagist.org;而 composer dump-autoload -o 后仍慢,往往是因为没真正启用 classmap 模式——这和安装阶段无关,但很多人误以为“装快了就万事大吉”,结果运行时又卡在自动加载上。



















