Installing Composer for Windows - unable to find wrapper “https”

混江龙づ霸主 提交于 2019-12-29 07:52:47

问题


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.


回答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.




回答2:


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

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



回答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.



来源:https://stackoverflow.com/questions/29201815/installing-composer-for-windows-unable-to-find-wrapper-https

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!