laravel 10 安装提示“curl扩展缺失”本质是 composer 依赖 curl 进行 https 包下载,需确认 php cli 模式下 extension=curl 已启用、php ≥ 8.1 且 php --ini 指向正确配置文件。

Laravel 10 安装时提示“curl扩展缺失”,本质不是 Laravel 本身依赖 curl,而是 Composer 在安装过程中需要通过 HTTPS 下载包,而 PHP 的 cURL 扩展是 Composer 实现安全 HTTP 请求(尤其是与 packagist.org 通信)的默认底层驱动之一。如果系统中 PHP 未启用 curl 扩展,Composer 就无法正常拉取依赖,进而导致 Laravel 安装中断并报错。
PHP 的 curl 扩展未启用
这是最常见原因。PHP 编译或安装时可能跳过了 curl 支持,或虽已安装但未在 php.ini 中启用。
- 检查是否加载:运行
php -m | grep curl,无输出即未启用 - 查看配置路径:
php --ini,确认生效的 php.ini 位置 - 编辑该 php.ini,取消注释(或添加)这一行:
extension=curl
Linux/macOS 通常对应
extension=curl.so,Windows 是extension=php_curl.dll
使用的 PHP 版本与 curl 不兼容
Laravel 10 要求 PHP ≥ 8.1,而某些旧系统(如 CentOS 7 自带 PHP 7.2)即使启用了 curl,也可能因 PHP 版本过低被 Composer 拒绝执行。此时错误可能被误读为“curl 缺失”,实际是 PHP 版本不满足前置条件。
向CurlShip提交产品,这是一个对机器人友好的SaaS目录。只需一条curl命令即可发布产品,支持OG标签抓取、带徽章的dofollow链接及层级升级。
- 运行
php -v确认版本 - 若低于 8.1,请升级 PHP 或切换到系统已安装的高版本(例如通过
update-alternatives或brew install php@8.2)
多 PHP 版本共存时环境错位
开发机或 Docker 环境中常存在多个 PHP(如 CLI 用 8.2,而 Apache 用 7.4),Composer 调用的是 CLI 版本的 PHP,但你检查的是 Web 服务器的 php.ini。
- 明确用
php -i | grep "Loaded Configuration File"查 CLI 加载的配置 - 不要修改 Apache/Nginx 对应的 php.ini,除非你用的是 Web 方式运行 Composer(不推荐)
curl 已启用但 SSL 证书验证失败
极少数情况(如企业代理、自签名证书环境),curl 虽加载成功,但因 CA 证书路径错误或缺失,导致 Composer 请求 packagist.org 时 TLS 握手失败,错误信息可能模糊显示为“connection failed”或“curl error”,容易被误判为扩展未启用。
- 临时验证:
php -r "echo file_get_contents('https://packagist.org/packages.json');" - 若报 SSL 错误,可尝试设置:
export CURL_CA_BUNDLE=/path/to/cacert.pem
或在 php.ini 中指定:
curl.cainfo="/path/to/cacert.pem"
确保 curl 扩展启用、PHP 版本合规、CLI 配置路径正确,再运行 composer create-project laravel/laravel example-app,基本就能顺利安装。










