Composer and Wamp – Unable to find the socket transport “ssl”

Just a quick post after something regarding wamp I completely forgot about.

I was using composer to install a fresh copy of Silverstripe 3, which worked fine until I tried to use composer to search packagist for related packages:

[code]composer search silverstripe[/code]

The console came back with the following error:

[code]
The “http://packagist.org/search.json?q=silverstripe” file could not be downloaded: failed to open stream: Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?
[/code]

Using the wamp tray icon, I had enabled openssl under php extensions, and ssl under apache modules. My phpinfo was showing ssl under Registered Stream Socket Transports. So what was the problem?

Googling the error specific to wamp netted very little, until I came across a post that reminded me that wamp, by default, has two php.ini files. One located in /bin/php/[version]/, and another located in /bin/apache/[version]/bin. Apache (e.g. using php through a browser) uses the former ini file. Which is why I saw no problem in my phpinfo.

Depending on how your PATH is set on Windows, php-cli uses the latter ini file. On manually checking this file, I found that openssl was not enabled. And enabling it allowed the above composer command to work fine.

Note to self – Work out a unified php.ini usage so I only have to rely on one configuration.

Netbeans, JRE7 and Windows firewall

JRE7 has been released, and a big part of this is support for IPv6.It seems this does not play nice with FTP operations that run via the new Java Runtime.

After updating to JRE7, when you attempt FTP operations within Netbeans (tested on 7.3 RC2), you may see the follow error and failure:

[code]Because NetBeans is running on Windows and JDK 7, you might be facing a problem with FTP operations. Ensure that Windows built-in firewall does not block JDK 7 binaries.[/code]

There are various ways to get around this, but the simpliest is to open a CMD window as administrator and simply enter this command:

[code]netsh advfirewall set global StatefulFTP disable[/code]

You should get a confirmation “Ok.” from the console. In which case you can head over to Netbeans and try the FTP operation from scratch again.

Installing PEAR and PHPUnit on Windows 7 (WAMP)

Just a quick and dirty walkthrough for the end goal of installing PHPUnit on a Windows 7 machine running WAMP. These steps should be fine for other versions of Windows and WAMP. Really the structure of the stack does not have a huge impact on the installation of both PEAR and PHPUnit.

Continue reading