PHP-Curl提示Protocol “https“ not supported or disabled in libcurl

问题产生

本地开发环境使用的是 MxSrvs ,Mac下还算好用的一个集成环境,官网: http://www.xsrvs.com/docs.html

今天在使用的时候,使用CURL调用https接口的时候提示,
Protocol “https” not supported or disabled in libcurl

解决问题思路

1、提示信息为 协议不支持或者被禁用,第一反应是看下自己的CURL是否开启,打印phpinfo之后,发现CURL扩展是开启的。

2、发现CURL开启,没法请求https接口可能是 接口地址不对,之前遇到过请求的多了个URL空格,仔细检查后发现没有问题。

3、仔细检查了CURL相关的配置项

cURL support enabled
cURL Information 7.73.0
SSL NO

发现在SSL这一项显示为NO,说明curl不支持SSL

可能产生的原因:

  1. 系统自带的CURL不支持https,命令行输入
curl -V 

Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets

发现支持的协议中有https,说明系统自带的CURL库没有问题

  1. 编译php的时候没有指定开启SSL,检查php编译参数,发现没有带 --with-ssl参数说明编译的时候少参数了。需要重新编译php,编译命令如下,(需要把参数修改为自己的)【PS:如果找不到系统自带的curl可以自己去下载一个编译一下,编译的时候需要注意参数,mac下编译CURL的参数和其他平台不同】
'./configure' '--prefix=/Applications/MxSrvs/bin/php' '--with-openssl=/usr/local/Cellar/[email protected]/1.1.1d/' '--with-config-file-path=/Applications/MxSrvs/bin/php/etc' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv=/Applications/MxSrvs/libs/_libiconv/1.16' '--with-zlib' '--with-curl' '--with-jpeg' '--with-freetype' '--with-openssl' '--with-mhash' '--with-gettext=/Applications/MxSrvs/libs/_gettext/0.20.2' '--with-pear' '--without-gdbm' '--enable-gd' '--enable-mbstring' '--enable-ftp' '--enable-bcmath' '--enable-sockets' '--enable-xml' '--enable-mbregex' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-fpm' '--disable-fileinfo' '--disable-rpath' 'PKG_CONFIG_PATH=/Applications/MxSrvs/libs/_libxml/2.9.9/lib/pkgconfig:/Applications/MxSrvs/libs/_openssl/1.1.1g/lib/pkgconfig:/Applications/MxSrvs/libs/_sqlite/3.31.1/lib/pkgconfig:/Applications/MxSrvs/libs/curl-7.73.0/lib/pkgconfig:/Applications/MxSrvs/libs/_zlib/1.2.11/lib/pkgconfig:/Applications/MxSrvs/libs/_libpng/1.6.37/lib/pkgconfig:/Applications/MxSrvs/libs/_jpeg/9d/lib/pkgconfig:/Applications/MxSrvs/libs/_freetype/2.10.2/lib/pkgconfig:/Applications/MxSrvs/libs/_oniguruma/6.9.5/lib/pkgconfig:/Applications/MxSrvs/libs/_libgd/2.3.0/lib/pkgconfig:'
  1. 编译、编译安装
make 
make install
  1. 重新启动PHP,查看phpinfo信息

Mac下编译curl

PS:需要注意版本的问题,老版本的curl在11.15系统编译时候,可能会出现问题,下载新版本的curl安装就可以

#下载curl
wget https://curl.se/download/curl-7.73.0.tar.gz
#编译
./configure  --prefix=/Applications/MxSrvs/libs/curl-7.73.0 -with-ssl=/usr/local/Cellar/[email protected]/1.1.1d/  --with-winssl  --with-darwinssl
#编译
make
#编译安装
make install

你可能感兴趣的:(php)