Socket transport "ssl" in PHP not enabled

PhpSslIis 6Fsockopen

Php Problem Overview


I'm having trouble enabling the socket transport "ssl" in PHP. When I run my script, I get the error:

> Warning: fsockopen() > [function.fsockopen]: unable to > connect to ssl://www.my.site.com:443 > (Unable to find the socket transport > "ssl" - did you forget to enable it > when you configured PHP?)

I'm running IIS6 on Windows and this is what I've done so far to try to get it working:

  • uncommented the php_openssl.dll and php_sockets.dll extensions in php.ini
  • made sure PHP was loading the ini file I made changes to (it is, and it's definitely loading other extensions, so I'm fairly sure this isn't the problem)
  • made sure php_openssl.dll and php_sockets.dll were in the correct location
  • copied ssleay32.dll and libeay32.dll to the main PHP folder, the WINDOWS folder and the WINDOWS/system32 folder
  • made sure the Windows path variable included the location of PHP
  • made sure the file permissions were correct on all the relevant files.

I've restarted IIS after pretty much every change, but I haven't had any luck. Is there anything obvious that I'm doing wrong? Is there anyway to troubleshoot this in smaller parts? (So I can figure out the problem by the process of elimination...?)

Unfortunately Windows/IIS aren't my area of expertise--I've been put in charge because nobody else seems to know anything.

Php Solutions


Solution 1 - Php

I was having problem in Windows 7 with PHP 5.4.0 in command line, using Xampp 1.8.1 server. This is what i did:

  1. Rename php.ini-production to php.ini (in C:\xampp\php\ folder)
  2. Edit php.ini and uncomment extension_dir=ext.
  3. Also uncomment extension=php_openssl.dll.

After that it worked fine.

Solution 2 - Php

Success!

After checking the log files and making sure the permissions on php_openssl.dll were correct, I googled the warning and found more things to try.

So I:

  • added C:\PHP\ext to the Windows path
  • added libeay32.dll and ssleay32.dll to C:\WINDOWS\system32\inetsrv
  • rebooted the server

I'm not sure which of these fixed my problem, but it's definately fixed now! :)

I found these things to try on this page: http://php.net/manual/en/install.windows.extensions.php

Thanks for your help!

Solution 3 - Php

In XAMPP Version 1.7.4 server does not have extension=php_openssl.dll line in php ini file. We have to add extension=php_openssl.dll in php.ini file

Solution 4 - Php

Ran into the same problem on Laravel 4 trying to send e-mail using SSL encryption.

Having WAMPServer 2.2 on Windows 7 64bit I only enabled php_openssl in the php.ini, restarted WAMPServer and worked flawlessly.

Did following:

  • Click WampServer -> PHP -> PHP extensions -> php_openssl
  • Restart WampServer

Solution 5 - Php

Just uncomment extension=php_openssl.dll Restart Apache Service and that should help.

Solution 6 - Php

I also ran into this issue just now while messing with laravel.

I am using wampserver for windows and had to copy the /bin/apache/apacheversion/bin/php.ini file to /bin/php/phpversion/php.ini

Solution 7 - Php

I am using XAMPP and came across the same error. I had done all those steps, added environmental variables path, copied the dll's every directory possible, to /php, /apache/bin, /system32, /syswow64, etc.. but still got this error.

Then after checking the apache error log, I noticed the issue with using brackets in path.

> PHP: syntax error, unexpected '(' in C:\Program Files > (other)\xampp\php\php.ini on line 707 0 server certificate does NOT > include an ID which matches the server name

If you have installed the server in "Program Files (x86)" directory, the same error might occur due to the non-escaped brackets.

To fix this, open php.ini file and locate the line containing "include_path" and enclose the path with double quotes to fix this error.

> include_path="C:\Program Files (other)\xampp\php\PEAR"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjelinaView Question on Stackoverflow
Solution 1 - PhpcikatomoView Answer on Stackoverflow
Solution 2 - PhpjelinaView Answer on Stackoverflow
Solution 3 - PhpSelvakumarView Answer on Stackoverflow
Solution 4 - PhpMarko AleksićView Answer on Stackoverflow
Solution 5 - PhpYogesh UnavaneView Answer on Stackoverflow
Solution 6 - PhpDaleView Answer on Stackoverflow
Solution 7 - PhpAjay SinghView Answer on Stackoverflow