不支持使用 PHP 协议的 HTTPS,但 curl 命令行连接良好


https with php protocol not supported, but curl command line connects fine

可能的重复项:
协议 https 在 libcurl 中不受支持或禁用

我正在尝试使用 php 中的 curl 通过 https 连接到站点。

<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api-3t.paypal.com/nvp');
  $response = curl_exec($ch);
  curl_close($ch);
?>

卷曲与

* Protocol https not supported or disabled in libcurl

但是通过命令行使用 curl 工作正常

  # curl https://api-3t.paypal.com/nvp

我正在运行 CentOS 5.8, WHM 11.32.2

# curl-config --features
SSL
IPv6
libz
IDN
NTLM

# curl-config --protocols
HTTP
HTTPS
FTP
FTPS
FILE
TELNET
LDAP
DICT
TFTP
NTLM

你从命令行运行的curl二进制文件是一回事;但它几乎独立于你从PHP调用的curl_*()函数。

curl命令行工具获得的功能不一定(正如您所注意到的(从PHP中可用。

在这里,您可能需要重新编译 PHP,以确保它使用 SSL 支持进行编译。

在 php 中启用扩展php_sockets.ini