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

jel*_*ina 53 php ssl iis-6 fsockopen

我在PHP中启用套接字传输"ssl"时遇到了问题.当我运行我的脚本时,我收到错误:

警告:fsockopen()[function.fsockopen]:无法连接到ssl://www.my.site.com:443(无法找到套接字传输"ssl" - 您是否忘记在配置PHP时启用它? )

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

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

我几乎每次改变后都重新启动了IIS,但我没有运气.有什么明显的我做错了吗?无论如何要在较小的部分进行故障排除吗?(所以我可以通过消除过程找出问题......?)

不幸的是,Windows/IIS不是我的专业领域 - 我一直负责,因为似乎没有人知道任何事情.

cik*_*omo 67

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

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

之后它运作良好.

  • 只是取消注释extension = php_openssl.dll并重新启动Apache也适合我. (13认同)
  • 非常感谢.它几乎让我哭了:-) (6认同)

jel*_*ina 21

成功!

在检查日志文件并确保php_openssl.dll上的权限是正确的之后,我搜索了警告并发现了更多要尝试的事情.

所以我:

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

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

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

谢谢你的帮助!


小智 8

在XAMPP版本1.7.4中,php ini文件中没有extension = php_openssl.dll行.我们必须在php.ini文件中添加extension = php_openssl.dll


Mar*_*sić 7

在Laravel 4尝试使用SSL加密发送电子邮件时遇到同样的问题.

在Windows 7 64位上使用WAMPServer 2.2我只在php.ini中启用了php_openssl,重新启动了WAMPServer并且运行良好.

做了以下:

  • 单击WampServer - > PHP - > PHP扩展 - > php_openssl
  • 重启WampServer


Yog*_*ane 7

只需取消注释extension = php_openssl.dll 重启Apache服务,这应该有所帮助.