答案:应优先在项目级配置阿里云镜像源https://mirrors.aliyun.com/composer/并执行composer clear-cache和rm -rf vendor/,避免全局配置冲突与缓存干扰;禁用composer global require,改用composer require --dev按需安装,windows下可设platform.ext-zip 0规避解压问题。

新人装完PHP就卡在 composer install 超时?镜像没切对
国内默认走 packagist.org,但它的 CDN 在大陆不稳定,尤其首次安装依赖时会卡在 Downloading https://packagist.org/packages.json 或某个 .zip 包下载不动。不是网络差,是请求被重定向到境外节点,超时后自动退回到慢速原链。
解决办法不是换网络,而是强制切国内镜像——但别用网上搜到的“一键脚本”硬改全局配置,容易和团队其他成员的 ~/.composer/config.json 冲突。推荐在项目根目录下加 composer.json 的 repositories 块,只对当前项目生效:
{
"repositories": [
{
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
]
}
注意:packagist.phpcomposer.com 已停服,现在主流用 https://mirrors.aliyun.com/composer/ 或 https://packagist.laravel-china.org(后者已归档),实际应选阿里云镜像。如果项目已有 repositories,别覆盖,追加即可。
脚本里写死 composer global require?危险操作
很多“统一脚本”会直接运行 composer global require laravel/installer 或类似命令,这会让新人本地全局安装一堆工具,后续项目升级或换环境时极易因版本冲突报错,比如 laravel/installer v4 和项目要求的 v3 不兼容。
真正该进脚本的只有三类东西:
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/——设全局镜像(仅一次,不重复执行) -
composer install --no-dev --optimize-autoloader——生产环境精简安装 -
cp .env.example .env && php artisan key:generate——Laravel 类项目必须的初始化
所有 global require 类命令一律剔除,改用 composer require --dev 按需装到项目本地,或者用 tools/ 目录放可执行二进制(如 phpstan、pest),避免污染全局。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
Windows 新人跑 composer install 报 ext-zip missing?别急着装扩展
这个错误不是真缺 zip 扩展,而是 Composer 默认用 zip 方式解压包,但 Windows 下 PHP 有时没启用该扩展,或路径含空格导致调用失败。强行去 php.ini 开 extension=zip 可能引发其他扩展冲突。
更稳妥的做法是告诉 Composer 改用 7zip 或纯 PHP 解压:
- 先确认系统已装
7z.exe(如从 7-Zip 官网下载),并加入 PATH - 在项目根目录运行:
composer config platform.ext-zip 0——假装没这个扩展 - 再跑
composer install,它会自动 fallback 到php unzip或调用7z
如果仍失败,检查 php -m | findstr zip 确认是否真加载了,而不是只开了 ini 项。很多 WAMP/XAMPP 默认关掉 zip,但新版 PHP 已内置,无需额外 DLL。
脚本最后没清 vendor/ 就重跑 install?缓存干扰比想象中严重
新人反复执行脚本,常遇到 “明明换了镜像,还是卡在旧包下载”。根本原因是 Composer 缓存(~/.composer/cache)里存着旧源的失败记录,甚至已下载一半的损坏 .zip,下次仍尝试续传。
脚本末尾必须加清理动作,但不能粗暴 rm -rf vendor/(Windows 不认):
-
composer clear-cache——清元数据和包缓存 -
rm -rf vendor/ && mkdir vendor(Linux/macOS)或rd /s /q vendor && mkdir vendor(Windows) - 再执行
composer install,确保从头走新镜像流程
这点容易被忽略:缓存不清理,换镜像等于白换;而 vendor/ 不删干净,autoload 生成可能引用旧符号,导致后续 php artisan 命令找不到类。










