现在凌晨2:13,我是从早上9点开始解决问题的,这个问题出现微信开发引出的。

最后问题出在PHP curl配置上。php curl 扩展不支持https,如何将ssl=>no装换为yes?

Composer update 报错: Protocol “https“ not supported or disabled in libcurl

php代码运行也报错: Protocol “https“ not supported or disabled in libcurl

开始排查问题:

1.openssl,如果没有安装openssl请百度安装

openssl version -a

2.curl

$ curl -V
curl 7.77.0 (x86_64-apple-darwin19.6.0) libcurl/7.77.0 OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.9 zstd/1.4.5 libidn2/2.3.0 nghttp2/1.41.0 librtmp/2.3
Release-Date: 2021-05-26
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IDN IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets zstd

其中 Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt如果没有https请重新安装curl。方法:

https://curl.se/download/下载curl

解压,进入解压目录

which openssl

./configure --with-ssl=/usr/local/bin/openssl
make
make install

编译安装成功后,curl -V查看版本

 

3.如果以上两项都没有问题了,查看php curl扩展

打印phpinfo() 或者命令 php --ri curl

 

出现上述两种情况说明php curl 扩展不支持https,如何将ssl=>no装换为yes?

我各种安装都没有效果,因为我当前php版本7.4.6,各种尝试十多个小时,反复重复编译安装php也不行,我觉得是/php/ext/curl/ 这个目录原本存在问题,于是下载了7.4.19

解压

复制整个curl覆盖掉7.4.6的

重新编译安装7.4.6

我这里是MacBook,

所以又根据当前各种库把命令修改好执行

Yanzhongxin:php-7.4.6 admin$ cd /php7.4.6/
Yanzhongxin:php-7.4.6 admin$ './configure' '--prefix=/Applications/MxSrvs/bin/php' '--with-openssl=/private/etc/ssl' '--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=/Library/curl-7.77.0' '--with-jpeg' '--with-freetype' '--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:/Library/curl-7.77.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:'

【这里注意

--with-openssl=/private/etc/ssl  这里是我执行命令 openssl version -a  获取的OPENSSLDIR

curl路径  --with-curl=/Library/curl-7.77.0    是我刚刚安装curl的路径】

接着执行make

没有报错则执行make install,下面是遇到的报错

没有报错则查看 php curl 扩展详情

成功解决

 

总结:其实这次遇到的问题就是php  curl扩展没有开启ssl,php7.4.6 curl目录自身存在问题,所以反复编译安装没用,解决办法就是找到同版本7.4.x的ext/curl目录直接覆盖原目录,再次编译安装

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐