【问题标题】:SSL issue after pear channel-update pear.php.net梨通道更新 pear.php.net 后的 SSL 问题
【发布时间】:2015-10-28 19:30:48
【问题描述】:

我在 Windows7 上有 XAMPP。更新 pear.php.net 频道后:

pear channel-update pear.php.net

并尝试安装新包,例如 pecl install zmq ,遇到以下消息并且无法安装任何包:

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?

我在网上非常搜索并试图解决它但无法解决它。谁能帮我解决这个问题,原因是什么?

【问题讨论】:

  • 您安装了哪些 php 模块? php -m
  • @cweiske openssl 和其他。写那些包名?所以我在下一篇文章中发表了评论,现在问题在pecl search package_name !!!
  • @cweiske openssl 对我来说不是必需的,但即使我禁用了 openssl 它但没有效果。
  • 这能回答你的问题吗? SSL broken after pear channel-update pear.php.net

标签: php xampp pear pecl


【解决方案1】:

最近我在使用 XAMPP 7.0 的 macOS Sierra 上遇到了这个问题

我更新了 pecl 频道

sudo pecl channel-update pecl.php.net

然后我得到了

连接到 `ssl://pecl.php.net:443' 失败:

我的解决方法如下

运行php -r "print_r(openssl_get_cert_locations());"

检查default_cert_file路径

然后从http://curl.haxx.se/ca/cacert.pem下载证书 重命名并将其放置在default_cert_file路径

然后试试 pecl 列出所有

应该可以正常使用

【讨论】:

  • 对于 XAMPP 对于 XAMPP /Applications/XAMPP/xamppfiles/share/openssl 在这个路径我添加了文件
  • 我不确定提供的解决方案有多安全,无论如何,另一个(安全)解决方案是更新您的 OpenSSL,如果您在 mac 上使用自制软件,您需要做的就是发出 @ 987654326@.
  • 天哪,谢谢!!这适用于我的 Ubuntu 16.04 安装。我已经升级了我的 openSSL 并获得了新证书,但没有任何效果!很棒的修复:)
  • 您可能需要在应用上述解决方案后重新启动apache服务,我需要这样做。
【解决方案2】:

在我的 mac 中,根据 chintan 的回复,我做到了:

/Applications/XAMPP/bin/php -r "print_r(openssl_get_cert_locations());"

... 显示 default_cert_file

Array
(
    [default_cert_file] => /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /Applications/XAMPP/xamppfiles/share/openssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /Applications/XAMPP/xamppfiles/share/openssl/private
    [default_default_cert_area] => /Applications/XAMPP/xamppfiles/share/openssl
    [ini_cafile] => /Applications/XAMPP/xamppfiles/share/curl/curl-ca-bundle.crt
    [ini_capath] => 
)

然后获取最新版本的 cacert.pem:

wget http://curl.haxx.se/ca/cacert.pem

然后我把它移到了 default_cert_file 的正确位置:

sudo mv cacert.pem /Applications/XAMPP/xamppfiles/share/openssl/cert.pem

【讨论】:

    【解决方案3】:

    在 Windows 上的 XAMPP 7.1 中 .bat-PECL 和 PEAR 文件可能是 SSL 无法工作的原因。如果就地命令php peclcmd.php list-all 为您工作,那么这可能是因为您使用了正确的 php.ini 文件。只需在 .bat-file 命令中添加选项 -c "%PHP_PEAR_BIN_DIR%\php.ini"(您的 php.ini 可能在另一个路径中)。它保留在:RUN 部分。

    【讨论】:

    • 对其他人的注意:这仍然需要使 pecl 与 php 8.0.11 捆绑在 Windows 上工作。 sigh 感谢您的修复!
    【解决方案4】:

    这是 PEAR 1.9.x 与 PHP 5.5+ 结合使用的错误。

    请升级到 PEAR 1.10.0dev1(或最新的 1.10.0dev2)which fixes 这个问题。

    【讨论】:

    • 我升级到 PEAR 1.10.0dev2 并重新启动 apache 但问题仍然存在。 pear version : PEAR Version: 1.10.0dev2 - PHP Version: 5.5.19
    • 重启windows后我注意到pecl install package_name可以工作,但是在搜索包pecl search package_name时出现错误: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? !!!!!!!!!
    【解决方案5】:

    对于我在%PHP_PEAR_BIN_DIR%\pecl.bat 中的Windows 10 上,以"%PHP_PEAR_PHP_BIN%" -C -n -d 开头的行;删除“-n”对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多