首次安装必须用 composer update 而非 install,因新项目无 composer.lock;换源需配置正确 json 格式镜像地址、清缓存、检查权限及 php 扩展(openssl/curl/mbstring),并注意项目级 repositories 会覆盖全局配置。

先别跑 composer install,首次安装根本没 composer.lock,它会直接报错退出——必须用 composer update 启动。
为什么 composer install 一运行就失败
报错如 No composer.lock file present 或 Command install is not defined,不是命令写错,是逻辑上就不该用 install。这个命令只负责按 composer.lock 精确还原依赖,而新项目压根没有这个文件。
- 新初始化的项目:删掉
vendor/和composer.lock后,也得用composer update重建 -
composer install在无 lock 文件时会立即中断,不尝试解析composer.json - 新版 Composer(v2.5+)已强化此行为,不再自动 fallback 到 update
镜像没配对,composer update 也会卡死或 404
国内直连 packagist.org 基本不可用,但错误表现常被误判为“网络不通”或“PHP 坏了”。真实问题是请求发到了错误地址。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer config -g repo.packagist,输出必须是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(注意末尾斜杠和type字段) - 若输出为空、
null或仍是https://packagist.org,说明镜像根本没生效 - 项目目录下若有
"repositories": [](哪怕空数组),全局配置会被静默忽略 - 换源后必须执行
composer clear-cache,否则旧缓存仍走原路径
权限错位比网络问题更常见
报 Permission denied 写 vendor/ 或 composer.lock,90% 是属主为 root,而你正以普通用户运行。这不是 chmod 能解决的。
- 查归属:
ls -ld vendor/ composer.lock,若第一列显示root root,就是它 - 修复命令:
sudo chown -R $USER:$USER vendor/ composer.lock - Windows 下若报
Access is denied且卡在生成.bat文件,大概率是 Windows Defender 实时防护拦截,临时禁用即可
PHP 环境缺失扩展,错误提示极具误导性
报 The openssl extension is required 或卡在 Resolving packages...,不是 Composer 没装好,是 PHP CLI 缺必要扩展。
- 运行
php --ini找到生效的php.ini路径,打开它 - 确认以下三行前面的分号已去掉:
extension=openssl、extension=curl、extension=mbstring - 验证:
php -m | grep openssl能输出才算真正启用 - 特别注意:Web 和 CLI 可能加载不同
php.ini,别只信浏览器里phpinfo()的结果
最容易被忽略的是项目级 repositories 配置覆盖全局镜像——哪怕只是空数组,也会让 composer config -g 的输出完全失效。检查 composer.json 顶部有没有这个字段,有就删掉或临时 composer config --unset repositories。










