看到“系统不支持 curl”这句提示,先要分清环境。实际遇到最多的是三种:PHP 程序报的、Python 脚本报的、Windows 命令行里找不到 curl。

PHP 里的 curl 未启用

PHP 的 curl 是扩展,不是内置函数。典型报错是 Call to undefined function curl_init()。先检查:

php -m | findstr curl

没输出说明没启用。打开 php.ini,去掉注释:

extension=curl
extension_dir="ext"

Windows 版 PHP 还要确认 ext 目录里存在 php_curl.dll,加载所需的 openssl、libssh2 相关 dll 也要在。改完重启 PHP 或 IIS、Apache,命令行再执行 php -m 确认。

还有一种情况:面板里装了多个 PHP 版本,改了 8.1 的 ini,网站跑的却是 7.4,自然没效果。按 phpinfo() 里显示的 Loaded Configuration File 路径去改才准。

Python 里的相关报错

Python 本身没有 curl,只有第三方包 pycurl,Windows 上 pip 安装经常因为找不到 curl 头文件失败。多数场景不需要它,用 requests 就行:

import requests
r = requests.get('https://example.com', timeout=10)

Windows 命令行找不到 curl

Win10 1803 之后自带 curl.exe,在 C:\Windows\System32 下。老系统或精简系统可能缺失,从 curl 官网下载后把 bin 目录加入 PATH。

另一个高频问题:PowerShell 5 里 curl 是 Invoke-WebRequest 的别名,执行 curl 拿到的不是接口原文。改用 curl.exe:

Remove-Item alias:curl
curl.exe -I https://example.com

主机环境限制

部分虚拟主机或容器镜像禁用 curl 扩展和 exec 函数。这种只能换主机或者让服务商开启,上线前跑探针确认更省事。