【问题标题】:Installing Composer for Windows - unable to find wrapper "https"为 Windows 安装 Composer - 找不到包装器“https”
【发布时间】:2015-05-25 22:41:04
【问题描述】:

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

php -r "读取文件(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 标志,但它似乎没有起到作用。

【问题讨论】:

  • 该帖子中的所有答案都在解决我已经做过的事情,即取消注释 php.ini 文件中“extension=php_openssl.dll”上的行
  • 你重启服务器了吗?
  • 是的,我已经试过了
  • 我知道这真的很老了。只是想告诉未来的读者我的解决方法是什么。 “extension=php_openssl.dll”这一行不在我的 php.ini 文件中。我有它

标签: php windows composer-php


【解决方案1】:

好吧,由于无论出于何种原因,该解决方案似乎都不适合您,您可以观察到该命令所做的所有事情都是下载文件并将其打印到另一个 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

【讨论】:

  • 第一个结果:解析错误:语法错误,意外:在命令行第 1 行
  • @AdamF 您要么没有复制完全相同的行,要么输入错误。
【解决方案2】:

它通过使用 Havenard 的答案来工作。只需添加 '..' 将网址括起来

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

【讨论】:

    【解决方案3】:

    这听起来像是您的安装没有启用 openssl。

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

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

    ;extension=php_openssl.dll
    

    去掉分号

    extension=php_openssl.dll
    

    HTTPS 现在应该可以在 php 中为您工作了。

    【讨论】:

      【解决方案4】:

      在我的情况下(Windows 10,PHP 7.3.24)是

      extension=openssl
      

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

      【讨论】:

        猜你喜欢
        • 2020-12-05
        • 2018-08-27
        • 2012-09-16
        • 2018-07-05
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        • 1970-01-01
        • 2015-06-15
        相关资源
        最近更新 更多