Installing Composer for Windows - unable to find wrapper "https"

16,683

Solution 1

This sounds like your installation hasn't got openssl enabled.

Locate your php.ini file (on Windows this is probably in the same place as the php.exe (c:\php on my machine).

Open it in your favourite editor, and locate the line

;extension=php_openssl.dll

remove the semi-colon

extension=php_openssl.dll

HTTPS should now work for you from within php.

Solution 2

It works by using Havenard's answer. Just add '..' to enclose the url

php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls

Solution 3

Well, since the solution doesn't seem to work for you for whatever reason, you can observe that all this command is doing is download the file and printing it into another php process. This is a rather simple problem that can be workarounded with minor adaptations.

You can for instance, drop https and use http:

php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls

Or let some other tool fetch this file, such as:

wget -s -O - "https://getcomposer.org/installer" | php -- --disable-tls

Or even:

curl -sSk "https://getcomposer.org/installer" | php -- --disable-tls

The option --disable-tls is relevant to the installer script, it will tell it to use http instead of https in the furter downloads it will perform during the installation.

Share:
16,683
Adam Freymiller
Author by

Adam Freymiller

JavaScript enthusiast, soccer aficionado, and lifelong learner.

Updated on June 09, 2022

Comments

  • Adam Freymiller
    Adam Freymiller almost 2 years

    I am trying to install Composer for Windows using the command line with the following call:

    php -r "readfile(https://getcomposer.org/installer);" | php

    However, I get this error message:

    Warning: readfile(): Unable to find the wrapper "https" - did you forget to enable it when configured PHP? in Command line code on line 1

    Call Stack: 0.0010 224336 1. {main}() Command line code:0 0.0010 224488 2. readfile() command line code:1

    Warning: readfile(https://getcomposer.org/installer): failed to open stream: invalid argument in Command line code on line 1

    Call Stack: 0.0010 224336 1. {main}() Command line code:0 0.0010 224488 2. readfile() Command line code:1

    I have already uncommented the ";extension=php_openssl.dll" line in the php5.5.12 directory, restarted the browser, and tried other variants. When I run the command with just the 's' in https dropped, I get:

    Some settings on your machine make Composer unable to work properly. Make sure that you fix the issues listed below and run this script again:

    The openssl extension is missing, which means that secure HTTPS transfers are impossible. If possible you should enable it or recompile php with --with-openssl

    I've tried including this --with-openssl flag at various places but it doesn't seem to be doing the trick.

  • Adam Freymiller
    Adam Freymiller about 9 years
    result of the first one: parse error: syntax error, unexpected : in command line on line 1
  • Havenard
    Havenard about 9 years
    @AdamF You are either not copying the exact same line or you are typing it wrong.