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

时间:2015-03-23 01:03:53

标签: 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

我已经取消注释&#34 ;; extension = php_openssl.dll"在php5.5.12目录下行,重新启动浏览器,并尝试其他变种。当我只使用“'在https中删除,我得到:

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

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

重新编译php

我已尝试在各个地方加入--with-openssl旗帜,但它似乎没有做到这一点。

4 个答案:

答案 0 :(得分:8)

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

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

在您喜欢的编辑器中打开它,然后找到

;extension=php_openssl.dll

删除分号

extension=php_openssl.dll

现在,HTTPS应该可以在php中使用。

答案 1 :(得分:4)

通过使用Havenard的答案。只需添加' ..'附上网址

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

答案 2 :(得分:3)

好吧,既然解决方案无论出于何种原因似乎都不适合您,您可以观察到所有这些命令正在下载文件并将其打印到另一个php进程中。这是一个相当简单的问题,可以通过微小的改编来解决。

您可以删除https并使用http

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

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

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

甚至:

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

选项--disable-tlsinstaller脚本相关,它会告诉它在安装过程中将执行的更新下载中使用http而不是https

答案 3 :(得分:0)

就我而言(Windows 10,PHP 7.3.24)

extension=openssl

(https://stackoverflow.com/a/63460807/7508553)