安装Composer for Windows - 无法找到包装器"https"

Ada*_*ler 5 php windows composer-php

我正在尝试使用以下调用的命令行安装Composer for Windows:

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

但是,我收到此错误消息:

警告:readfile():无法找到包装器"https" - 您是否忘记在配置PHP时启用它?在第1行的命令行代码中

调用堆栈:0.0010 224336 1. {main}()命令行代码:0 0.0010 224488 2. readfile()命令行代码:1

警告:readfile(https://getcomposer.org/installer):无法打开流:第1行的命令行代码中的无效参数

调用堆栈:0.0010 224336 1. {main}()命令行代码:0 0.0010 224488 2. readfile()命令行代码:1

我已经取消注释了php5.5.12目录中的"; extension = php_openssl.dll"行,重新启动了浏览器,并尝试了其他变种.当我运行命令而只删除https中的's'时,我得到:

机器上的某些设置使Composer无法正常工作.确保您已修复下面列出的问题并再次运行此脚本:

缺少openssl扩展,这意味着无法进行安全的HTTPS传输.如果可能,您应该启用它或使用--with-openssl重新编译php

我已经尝试在各个地方包含这个--with-openssl标志,但它似乎没有做到这一点.

Gra*_*eme 9

这听起来像你的安装没有启用openssl.

找到您的php.ini文件(在Windows上,这可能与php.exe(c:\php在我的机器上)相同.

在您喜欢的编辑器中打开它,找到该行

;extension=php_openssl.dll
Run Code Online (Sandbox Code Playgroud)

删除分号

extension=php_openssl.dll
Run Code Online (Sandbox Code Playgroud)

现在,HTTPS应该可以在php中运行.


Hav*_*ard 5

好吧,由于无论出于何种原因,该解决方案似乎都不适合您,您可以观察到此命令所做的只是下载文件并将其打印到另一个php进程中。这是一个相当简单的问题,可以通过小的调整来解决。

例如,您可以删除https并使用http

php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls
Run Code Online (Sandbox Code Playgroud)

或者让其他工具获取这个文件,例如:

wget -s -O - "https://getcomposer.org/installer" | php -- --disable-tls
Run Code Online (Sandbox Code Playgroud)

甚至:

curl -sSk "https://getcomposer.org/installer" | php -- --disable-tls
Run Code Online (Sandbox Code Playgroud)

该选项--disable-tlsinstaller脚本相关,它会告诉它使用,http而不是https在安装期间执行的进一步下载中。


小智 5

它可以通过使用Havenard的答案来工作。只需添加“ ..”以包含网址

php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls
Run Code Online (Sandbox Code Playgroud)