在php程序中使用curl去访问https站点时,报错:
Protocol https not supported or disabled in libcurl
该错误信息表示php当时编译时使用的curl库不支持https, 验证方法为
你的curl安装目录/bin/curl -V
显示如下:
Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp
这表示curl是不支持 https的
为了支持https,需要下载源码包,重新编译curl
tar zxvf curl-7.24.0.tar.gz
cd curl-7.24.0
./configure --prefix=/usr/local/services/curl-7.24.0 --with-ssl=/usr/local/services/openssl-0.9.8a
#请注意,这里一定要使用 --with-ssl 参数,前提是你已经安装了openssl-0.9.8a (建议安装0.9.8a 测试过0.9.7i有些bug)
该步骤执行结束后,一定要观察仔细,是否有这行
SSL support: enabled (OpenSSL)
如果你的是
SSL support: no
那就是说,你的curl依旧没有支持https
make && make install
在make的时候,也许你会遇到这样的错误:
`a local symbol‘ can not be used when making a shared object; recompile with -fPIC
libssl.a: could not read symbols: Bad value
解决办法,请参考http://mylinux.5d6d.net/viewthread.php?tid=1013
安装完成后,再次运行
curl安装目录/bin/curl -V
结果为
Protocols: dict file ftp gopher http https imap pop3 rtsp smtp telnet tftp
这说明已经支持了https
剩下的就是重新编译php, 当然相应的支持curl的参数为 --with-curl=你的curl安装目录
相关文章
- 10-11http 使用curl发起https请求报错的解决办法
- 10-11python内置的urllib模块不支持https协议的解决办法
- 10-11js中列表控件排序箭头,在wke中不支持的解决办法
- 10-11php中cURL会话的curl_setopt的CURLOPT_HEADER和CURLOPT_RETURNTRANSFER参数的使用【转】
- 10-11php curl 中的gzip压缩性能测试
- 10-11idea中,发现某个java语法在低版本中不支持时的解决办法
- 10-11PHP中file_exists()函数不能检测包含中文的文件名的解决办法
- 10-11在php中使用curl,将客户端证书和私钥放在单独的文件中
- 10-11php 中的curl
- 10-11php中curl和fsockopen发送远程数据的应用