插座传输“;ssl“;在PHP中未启用

插座传输“;ssl“;在PHP中未启用,php,ssl,iis-6,fsockopen,Php,Ssl,Iis 6,Fsockopen,在PHP中启用套接字传输“ssl”时遇到问题。当我运行脚本时,会出现以下错误: 警告:fsockopen() [函数.fsockopen]:无法 连接到ssl://www.my.site.com:443 (找不到套接字传输 “ssl”-您忘记启用它了吗 当您配置PHP时?) 我在Windows上运行IIS6,这是我迄今为止为使其正常工作所做的工作: 在php.ini中取消对php_openssl.dll和php_sockets.dll扩展的注释 确保PHP正在加载我更改过的ini文件(确实是这

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

警告:fsockopen() [函数.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不是我的专业领域——我被任命为负责人,因为似乎没有其他人知道任何事情。

成功

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

因此,我:

  • 将C:\PHP\ext添加到Windows路径
  • 将libeay32.dll和ssleay32.dll添加到C:\WINDOWS\system32\inetsrv
  • 重新启动服务器
我不确定是哪一个解决了我的问题,但现在它肯定已经解决了!:)

我在这个页面上找到了这些东西:


谢谢你的帮助

我在Windows7中使用命令行中的PHP5.4.0,使用XAMPP1.8.1服务器时遇到问题。这就是我所做的:

  • php.ini产品重命名为
    php.ini
    (在C:\xampp\php\folder中)
  • 编辑
    php.ini
    并取消注释
    extension\u dir=ext
  • 同时取消注释
    extension=php\u openssl.dll

  • 在那之后,它工作得很好。

    我刚才在和拉雷维尔打交道时也遇到了这个问题


    我正在使用wampserver for windows,必须将/bin/apache/apacheversion/bin/php.ini文件复制到XAMPP 1.7.4版中的/bin/php/phpversion/php.ini

    服务器在php ini文件中没有extension=php\u openssl.dll行。我们必须在php.ini文件中添加extension=php_openssl.dll

    在尝试使用SSL加密发送电子邮件的Laravel 4上遇到了相同的问题

    Windows 7 64位I上的WAMPServer 2.2只在php.ini中启用了php_openssl,重新启动了WAMPServer,工作正常

    他做了以下工作:

    • 单击WampServer->PHP->PHP扩展->PHP\u openssl
    • 重新启动WampServer

    只需取消注释extension=php\u openssl.dll
    重新启动Apache服务,这应该会有所帮助。

    我正在使用XAMPP,遇到了相同的错误。我已经完成了所有这些步骤,添加了环境变量path,将dll的每个目录复制到了/php、/apache/bin、/system32、/syswow64等等。。但还是犯了这个错误

    然后在检查apache错误日志后,我注意到在path中使用括号的问题

    PHP:语法错误,C:\Program文件中出现意外的“(” (其他)\xampp\php\php.ini第707行0服务器证书不存在 包括与服务器名称匹配的ID

    如果已将服务器安装在“Program Files(x86)”目录中,则由于未转义括号,可能会发生相同的错误

    要解决此问题,请打开php.ini文件,找到包含“include_path”的行,并用双引号将路径括起来以解决此错误

    包括\u path=“C:\Program Files(其他)\xampp\php\PEAR”


    你的php.log看起来如何,如果你没有启用日志记录,请这样做。要扩展@RageZ的评论:php.ini中是否启用了“display\u startup\u errors”(显示启动错误)?是的,我们确实启用了日志记录功能…但是作为n00b,我完全忘记检查><我们得到的错误是:“PHP警告:PHP启动:无法加载动态库'C:\PHP\ext\PHP\u openssl.dll'-访问被拒绝。”看到这一点后,我认为这可能是PHP\u openssl.dll的权限问题,但我们将其与该文件夹中的另一个dll(我们知道正在加载)进行了比较它们似乎具有相同的权限和组。是否还有其他原因可能阻止加载此dll?确实,必须手动添加它,但幸运的是ext文件夹包含php_openssl.dll。使用WampServer 2.2,我只需在
    C:\wamp\bin\php\php5.3.13
    中编辑
    php.ini
    ,然后取消注释
    extension=php_openssl.dll
    。只需取消扩展名=php_openssl.dll的注释并重新启动Apache对我来说也很有效。非常感谢。这几乎让我哭了:-)谢谢,Wamp使用了另一个php.ini文件,而不是“C:\Wamp\bin\php\phpversion\php.ini”中的php.ini文件“我必须在这个php.ini文件中取消对open_sll扩展的注释,而不是在wamp建议的php.ini中取消注释。我希望这将帮助任何有同样问题的人。我在5.6.11上为我工作过,现在我可以阅读带有$data=file\u get\u contents($url)的https url@RubensMariuzzo谢谢,但我已经解决了,问题是我的64位系统,解决方案是在某些位置复制一些dll,我不记得确切的步骤。@taarradhin,不需要libeay32.dll和ssleay32,你只需要3件事:@coding\u idiot,1)
    extension\u dir
    必须指向
    php\u sockets.dll
    php\u openssl.dll
    都在其中的文件夹,2)必须有行
    extension=php\u openssl.dll
    extension=php\u sockets.dll
    extension=php\u sockets.dll