composer create-project卡住主因是未走镜像,需严格配置repo.packagist键名、composer type值及末尾带斜杠的url,并清缓存后执行;宝塔/ci需按实际用户配镜像,项目级配置须加"packagist.org": false。

composer create-project 卡住,不是网络慢而是没走镜像
执行 composer create-project 巨慢,90% 不是宽带问题,而是它默认仍直连 packagist.org 和 github.com。元数据加载快,但真正拉骨架时卡在 Downloading https://codeload.github.com/...——这说明镜像只配了元数据源,没管 zip 包下载路径。
- 必须先配好镜像源,再跑
create-project;临时加--repository参数只影响元数据,对已缓存的包无效 -
create-project会自动执行composer install,所以同样受composer.lock中 dist URL 约束;若 lock 文件里还是api.github.com地址,换源也没用 - 推荐做法:删掉全局
composer.lock缓存(composer clear-cache),再用带镜像的命令启动:composer create-project topthink/think tp-demo --repository=https://mirrors.aliyun.com/composer/
composer config -g repo.packagist 总不生效?三个硬伤全踩过
这条命令静默失败是常态,不是你手速慢,是 Composer 对键名、type、URL 格式三者都卡得极死。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 键名只能是
repo.packagist,写成repos.packagist、packagist或Repo.Packagist全无效 - 中间的
composer是type值,不是注释,漏掉就 fallback 到官方源,不报错 - URL 必须是
https://mirrors.aliyun.com/composer/这种格式:HTTPS 开头 + 末尾带斜杠,少一个就 404 - 验证方式唯一:运行
composer config -g repo.packagist,输出必须是完整 JSON(如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}),空、null 或报错=没写进去
宝塔/CI 里镜像失效?用户权限才是关键
你在本地配好了,但宝塔一键部署或 GitHub Actions 里依然慢,大概率是用户权限错位——Composer 的全局配置不跨用户共享。
- 全局配置写在
/root/.composer/config.json,只对 root 用户生效;宝塔默认以www用户运行 PHP 任务 - 查真实执行用户:进宝塔终端执行
whoami,或看计划任务日志里的 UID - 给对应用户配:比如是
www,就运行sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - CI 脚本里不能只写一次
composer config -g,要确保和后续composer install是同一个用户环境(如 GitHub Actions 的run-as或 Docker user)
项目级配置比全局更稳,但别漏掉 packagist.org: false
把镜像写进 composer.json 才是团队协作和 CI 的标准解法,但它有个致命细节容易被跳过。
- 在
composer.json顶层加"repositories"字段,内容为:[{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}] - 必须同时加
"packagist.org": false,否则 Composer 仍会 fallback 到官方源,加速形同虚设 - 已有私有源?别手动编辑 JSON,用命令追加:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g),它会自动合并进repositories数组 - 改完立刻删
vendor/和composer.lock,再跑composer install—— lock 文件里旧的 dist URL 不清掉,新配置根本不会触发
-vvv 日志里那行 Loading composer repositories 比任何教程都准;盯着它看域名是不是你配的那个,比反复重装 Composer 实在得多。










