梨通道更新pear.php.net后SSL被破坏

时间:2018-02-05 17:01:14

标签: php ssl pear httpd.conf php-7.2

我从源代码安装了php7.2.2,并开始通过pecl install sqlsrv获取mssql扩展名。它回复了pecl search sqlsrv,但通知我运行pear channel-update pear.php.net,之后搜索和安装都无法使用此错误消息:

Connection to `ssl://pecl.php.net:443' failed: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?

我读过各种各样的建议 http://forums.devshed.com/php-development-5/ssl-issue-pear-channel-update-pear-php-net-970623.htmlSSL issue after pear channel-update pear.php.net, 但我在任何地方都没有“openssl.so”库(某处我读过php7弃用它),php -r "print_r(openssl_get_cert_locations());"发现函数未定义,并在php.ini中引用http://curl.haxx.se/ca/cacert.pem中已下载的openssl.cafile=/opt/php/lib/php/extensions/no-debug-non-zts-20170718/cacert.pem(毫不奇怪)证明是徒劳的。 如果在愚蠢的更新之前它运行良好怎么回事?

1 个答案:

答案 0 :(得分:1)

我遇到过与OpenSUSE LEAP 15.0类似的问题。

pear list-updates之后,我收到一条警告,说我必须更新PECL频道协议。在pear channel-update pecl.php.net之后,每当我尝试安装或更新PECLextensnsión时,我都会收到以下错误。

  

连接到`ssl://pecl.php.net:443'失败:无法找到套接字传输“ssl” - 您是否忘记在配置PHP时启用它?

然而,PEAR工作正常。

检查PEAR和PECL命令之间的差异,我已经看到在PECL中运行PHP的最后一行使用 -n 选项告诉PHP不要使用php.ini。未启用OpenSSL扩展,因此未注册SSL和TLS套接字传输。

我不知道这是否是故意的,但我认为这有点不一致。