php -m无curl输出即确认未启用,与网络或权限无关;需通过php --ini定位cli配置文件,linux用apt install phpx.y-curl并phpenmod,windows改对应cli的php.ini取消extension=curl注释,docker/homebrew需额外启用。

php -m 里没 curl 就是真没启用,不是网络问题
Composer 报 The requested PHP extension curl is missing,说明它调用的 PHP CLI 环境压根没加载 curl 扩展——和你能不能 ping 通 GitHub、有没有代理、是不是公司内网全无关。核心判断只有一条:php -m | grep curl 没输出,就坐实缺失。
注意:phpinfo() 页面显示有 curl,不代表 CLI 也行;composer --version 和 php -v 版本不一致,大概率是用了不同 PHP 实例。
- 先运行
php --ini,盯住 “Loaded Configuration File” 那行路径(比如/etc/php/8.2/cli/php.ini),这才是 Composer 真正在读的配置 -
php -m输出的是当前 CLI 加载的所有扩展,别信 Web 环境的phpinfo() - Windows 下 XAMPP/WAMP 用户尤其容易改错文件:CLI 用
\xampp\php\php.ini,Apache 用\xampp\apache\bin\php.ini,必须确认路径再动手
Linux 下装 php8.2-curl 不要只装 php-curl
Ubuntu/Debian 系统中,PHP 版本号必须严格匹配扩展包名。装错版本会导致 php -m 仍看不到 curl,因为系统实际安装了另一个 PHP 版本的扩展。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查当前 CLI PHP 版本:
php -v(例如输出PHP 8.2.15) - 装对应扩展:
sudo apt install php8.2-curl(不是php-curl) - 验证是否生成启用文件:
ls /etc/php/8.2/cli/conf.d/ | grep curl应该看到20-curl.ini - 若仍不生效,检查
php --ini中 “Scan for additional .ini files in” 路径下是否存在该文件,以及是否被其他 ini(如99-disable-all.ini)覆盖
Windows 启用 curl 要同时满足三件事
XAMPP/WAMP 用户常以为去掉 php.ini 里的分号就完事了,其实还差两步:DLL 文件得存在,且 extension_dir 得指向对地方。
- 打开
php --ini显示的 CLI 配置文件(如C:\xampp\php\php.ini) - 搜索
;extension=curl或;extension=php_curl.dll,删掉前面的分号 - 确认
extension_dir = "ext"(默认值),然后检查C:\xampp\php\ext\php_curl.dll是否真实存在 - 关掉当前命令行窗口,新开一个再运行
php -m | findstr curl—— 不重启终端,修改无效 - WAMP 用户可跳过手动编辑:托盘图标 → PHP → PHP extensions → 勾选
php_curl,它自动处理 ini 和服务重启
镜像下载失败时,用 curl 手动补 vendor/cache
如果 composer install 卡在 download 阶段,且确认 curl 已启用,那问题可能出在网络或镜像站响应上。这时可以绕过 Composer 自身下载逻辑,用系统 curl 手动拉包存进缓存目录。
- 从
composer.lock中找到目标包的dist.shasum(40 位小写 hex)和url - 替换成镜像地址,例如阿里云格式:
https://mirrors.aliyun.com/composer/dists/{vendor}/{package}/{version}/$shasum.zip - 用
curl -L -k -o vendor/cache/$shasum.zip https://...下载(-k跳过 SSL 验证,避免证书问题) - 执行
composer install --no-scripts --no-plugins,Composer 会优先读取vendor/cache/下已存在的 zip
注意:shasum 必须小写、长度 40,URL 中的 version 格式是 Composer 内部生成的(如 2.9.2.0),不是原始 tag;漏掉 ?mirror=tencent 这类参数,腾讯云镜像会返回 404。










