【问题标题】:fsockopen with ssl doesn't work from web, but does from cli带有 ssl 的 fsockopen 不能在 web 上工作,但可以在 cli 上工作
【发布时间】:2015-12-07 06:03:38
【问题描述】:

我有一个通过 fsockopen 提取数据的脚本: $f = fsockopen('ssl://www.url.org', 443, $errno, $errstr);

如果我从命令行上的脚本运行它,$f 返回一个有效资源。如果我在没有 ssl 的情况下运行它,它会返回一个有效的资源。如果我通过网络运行它,$f 返回布尔值 false。

什么可能会阻止它通过网络成功运行?

【问题讨论】:

  • 运行stream_get_transports 看看你的服务器支持什么
  • 运行该函数并且 ssl 包含在列表中。

标签: php fsockopen


【解决方案1】:

我能够与服务器系统管理员合作并找到问题的原因。

Web 服务器运行的是 PHP 5.6,但是当通过 SSH 运行时,使用的是 PHP 5.3。 PHP 5.6 上 fsockopen 的问题是该服务无法找到全局 CA 证书。我们必须更新 5.6 配置才能正确配置它们。我猜它是通过命令行在 5.3 中工作的,因为旧配置仍然存在。

【讨论】:

    猜你喜欢
    • 2017-08-04
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    相关资源
    最近更新 更多