未启用 PHP 中的套接字传输“ssl”

2022-08-30 10:15:12

我在PHP中启用套接字传输“ssl”时遇到问题。当我运行脚本时,我收到错误:

警告:fsockopen() [function.fsockopen]:无法连接到 ssl://www.my.site.com:443(找不到套接字传输“ssl” - 配置PHP时忘记启用它了吗?

我在Windows上运行IIS6,这是我到目前为止所做的,试图让它工作:

  • 取消注释 php 中的php_openssl.dll和php_sockets.dll扩展.ini
  • 确保PHP正在加载我进行更改的ini文件(它是,它肯定正在加载其他扩展名,所以我相当确定这不是问题所在)
  • 确保php_openssl.dll和php_sockets.dll在正确的位置
  • 将 ssleay32.dll 和 libeay32.dll 复制到主 PHP 文件夹、WINDOWS 文件夹和 WINDOWS/system32 文件夹
  • 确保 Windows 路径变量包含 PHP 的位置
  • 确保所有相关文件的文件权限都是正确的。

在几乎每次更改之后,我都重新启动了IIS,但我没有任何运气。有什么明显的是我做错了什么吗?是否有办法在较小的部件中对此进行故障排除?(所以我可以通过消除的过程找出问题...?)

不幸的是,Windows/IIS不是我的专业领域--我被任命为负责人,因为似乎没有其他人知道任何事情。


答案 1

我在Windows 7中遇到问题,在命令行中使用PHP 5.4.0,使用Xampp 1.8.1服务器。这就是我所做的:

  1. 重命名为(在 C:\xampp\php\ 文件夹中)php.ini-productionphp.ini
  2. 编辑和取消注释 。php.iniextension_dir=ext
  3. 也取消注释。extension=php_openssl.dll

之后,它工作正常。


答案 2

成功!

在检查日志文件并确保php_openssl.dll的权限正确之后,我用谷歌搜索了警告,并找到了更多可以尝试的方法。

所以我:

  • 已将 C:\PHP\ext 添加到 Windows 路径
  • 将 libeay32.dll 和 ssleay32.dll 添加到 C:\WINDOWS\system32\inetsrv
  • 已重新启动服务器

我不确定其中哪一个解决了我的问题,但现在肯定已经解决了!:)

我在这个页面上找到了这些东西来尝试:http://php.net/manual/en/install.windows.extensions.php

感谢您的帮助!


推荐