“command not found: composer”是PATH未包含/usr/local/bin或文件缺执行权限;“Resolving dependencies”卡住是镜像未生效,因repo.packagist键名错误、缺type值、URL末尾无/,或项目级repositories覆盖全局配置。

“command not found: composer”不是没装上,是系统根本没找到可执行文件;装完就卡在 Resolving dependencies... 不是网差,是镜像根本没生效——这两件事占 Composer 新手问题的 80% 以上。
composer 命令找不到?PATH 没加载或权限不对
Linux/macOS 下把 composer.phar 移到 /usr/local/bin/composer 后,必须补两步:
- 加执行权限:
sudo chmod +x /usr/local/bin/composer - 确认
/usr/local/bin在$PATH里:echo $PATH | grep /usr/local/bin - 全局 bin 目录(
~/.composer/vendor/bin)也得加进PATH,否则composer global require laravel/installer装完还是敲不出laravel命令 - 改完配置要重载:
source ~/.zshrc(macOS)或source ~/.bashrc(Linux),Windows 必须新开终端
composer install 卡住?镜像配置写错或被覆盖
全局镜像命令看似简单,但三个细节错一个就静默失效:
- 键名必须是
repo.packagist(单数),写成repos.packagist或repository.packagist都不报错但无效 -
composer是 type 值,不是命令名,漏掉它等于没配:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - URL 末尾必须带
/,https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(某些版本会 404) - 项目级
composer.json里只要出现"repositories"字段,全局镜像立刻被无视——验证时用composer diagnose看是否还有Repo packagist.org is default
装完不配加速项?第一次 install 就慢出幻觉
只装命令不配环境,等于买了车不加油。新装完立刻跑这三行:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/-
composer config -g parallel-downloads 10(Composer 2.2+ 才支持) composer config -g prefer-dist true- 然后必须清缓存:
composer clear-cache,否则旧源元数据还在内存里 - 验证:分别执行
composer config -g repo.packagist、composer config -g parallel-downloads、composer config -g prefer-dist,都应输出对应值
CI/CD 或 Docker 构建中 composer install 还慢?参数没精简
CI 场景下不需要 dev 包、不需要 autoload、不需要脚本执行,硬装只会拖慢构建:
- 用
--no-dev --prefer-dist --no-autoloader --no-scripts四连参数 - 避免
composer.json里写"prefer-source": true,它会直接覆盖全局prefer-dist - 私有 Git 仓库没配
dist地址时,prefer-dist会报Could not find a matching version of package xxx,得临时关掉 - 路径型依赖(
"type": "path")完全不走并发下载,这类包越多,install 越慢且不可优化
最常被忽略的其实是 composer clear-cache 和项目级 repositories 的优先级——前者不执行,镜像形同虚设;后者一存在,全局配置自动让位。这两个点不检查,其他所有操作都在原地打转。


















