php 8.2 默认不启用 curl 扩展,须手动安装(如 ubuntu 执行 sudo apt install php8.2-curl)、在 php.ini 中按顺序启用 extension=openssl 和 extension=curl、配置 curl.cainfo 指向最新 ca 证书,并重启 php-fpm 或 web 服务,最后用 php -r "var_dump(function_exists('curl_init'), extension_loaded('curl'));" 验证双 true。

PHP 8.2 默认不自动启用 cURL 扩展,必须手动确认安装、启用并配好依赖,否则 curl_init() 会返回 false,且无明确错误提示。
确认 cURL 扩展是否已安装并加载
别只看 phpinfo() 里有没有 “curl” 区块——那只是模块注册了,不代表能用。真正要验证的是函数和扩展是否就绪:
- 运行
php -m | grep curl(Linux/macOS)或php -m | findstr curl(Windows),输出含curl才算加载成功 - 执行
php -r "var_dump(function_exists('curl_init'), extension_loaded('curl'));",两个值都必须是true - 如果
extension_loaded('openssl')是false,curl_init()很可能静默失败(尤其 HTTPS 请求),因为 cURL 依赖 OpenSSL
Linux 下启用 cURL:用包管理器,不是编译
Ubuntu/Debian 系统上,直接装对应 PHP 版本的扩展包即可,别自己编译:
基于5000余部现行法律法规进行的高质量专业合同审查,一键输出审查意见书,并附有参考法条原文,满足专业溯源核查要求。由accurLex知法提供技术支持。 Use when users ask for 合同审查, 审查意见书, 合同风险分析, 条款审查,知法,accurLex or 站在甲方/乙方角度审查合同 through accurLex direct API. China law only, plaintext only, review mode limited to 审查意见书.
- 查当前 PHP 版本:
php -v(确认是 8.2) - 安装扩展:
sudo apt install php8.2-curl(注意版本号必须严格匹配) - 重启服务:
sudo systemctl restart php8.2-fpm(FPM)或sudo systemctl restart apache2(Apache) - 常见坑:装了
php-curl却没装php8.2-curl,导致 CLI 和 Web 环境行为不一致
Windows 下启用 cURL:只改 php.ini,不复制 DLL
XAMPP、WAMP 或自建 PHP 环境都一样,现代发行版(含 PHP 8.2)已自带 php_curl.dll 和依赖,无需手动拷贝 libeay32.dll 等旧文件:
- 找到真实生效的
php.ini:php --ini输出的 “Loaded Configuration File” 路径 - 取消注释这两行(顺序不能错):
extension=openssl必须在extension=curl之前 - 确保没有写成
extension=php_curl.dll或带绝对路径——extension_dir已预设,硬写反而失效 - 重启 Web 服务器(Apache/Nginx)或 PHP-FPM,仅刷新页面无效
HTTPS 请求失败?大概率是 CA 证书没配对
PHP 8.2 搭配新版 libcurl(≥7.79)和 OpenSSL 3.0 后,CURLOPT_SSL_VERIFYPEER 默认强制开启,但 Windows 自带的 ca-bundle.crt 常停留在 2021 年前:
- 下载最新 CA 包:https://www.php.cn/link/cd6a3674478af373087f891eeb390100(末尾时间戳应为 2026 年 3 月左右)
- 保存到固定路径,如
C:\php\cacert.pem - 在
php.ini中加两行:curl.cainfo="C:\php\cacert.pem"和openssl.cafile="C:\php\cacert.pem" - 验证是否生效:
php -r "print_r(openssl_get_cert_locations());",看default_cert_file是否指向你刚设的路径
最常被忽略的一点:CA 证书路径配置后,必须重启 PHP 进程(不只是 Web 服务器),否则 openssl_get_cert_locations() 返回的仍是旧路径。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










