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

时间:2009-11-10 05:42:37

标签: 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不是我的专业领域 - 我一直负责,因为似乎没有人知道任何事情。

6 个答案:

答案 0 :(得分:67)

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

  1. php.ini-production重命名为php.ini(在C:\ xampp \ php \文件夹中)
  2. 修改php.ini并取消注释extension_dir=ext
  3. 同时取消注释extension=php_openssl.dll
  4. 之后它运作良好。

答案 1 :(得分: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

感谢您的帮助!

答案 2 :(得分:7)

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

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

以下是:

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

答案 3 :(得分:7)

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

答案 4 :(得分:1)

我刚刚在搞乱laravel的同时遇到了这个问题。

我正在使用wampserver for windows,并且必须将/bin/apache/apacheversion/bin/php.ini文件复制到/bin/php/phpversion/php.ini

答案 5 :(得分:0)

我正在使用XAMPP并遇到相同的错误。我已经完成所有这些步骤,添加了环境变量路径,将dll的每个目录都复制到了/ php,/ apache / bin,/ system32,/ syswow64等。但是仍然出现此错误。

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

  

PHP:语法错误,C:\ Program Files中出现意外的'('   (other)\第707行的xampp \ php \ php.ini 0服务器证书没有   包含与服务器名称匹配的ID

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

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

  

include_path =“ C:\ Program Files(other)\ xampp \ php \ PEAR”