Php 正在安装Windows Composer-找不到包装器;https";

Php 正在安装Windows Composer-找不到包装器;https";,php,windows,composer-php,Php,Windows,Composer Php,我正在尝试通过以下调用使用命令行安装Composer for Windows: php-r“readfile();”php 但是,我收到以下错误消息: 警告:readfile():找不到包装器“https”-配置PHP时是否忘记启用它?第1行的命令行代码中 调用堆栈: 0.0010 224336 1. {main}()命令行代码:0 0.0010 224488 2. readfile()命令行代码:1 警告:readfile():无法打开流:命令行代码第1行的参数无效 调用堆栈: 0.001

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

php-r“readfile();”php

但是,我收到以下错误消息:

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

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

警告:readfile():无法打开流:命令行代码第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传输。如果可能的话,您应该启用它或使用openssl重新编译php


我尝试过在不同的地方使用openssl标志,但似乎没有达到目的。

好吧,因为无论出于什么原因,解决方案似乎对您不起作用,您可以观察到,这个命令所做的只是下载文件并将其打印到另一个
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 tls
安装程序
脚本相关,它将告诉安装程序在安装期间执行的后续下载中使用
http
而不是
https

它使用Havenard的答案工作。只需添加“..”即可将url括起来

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

听起来您的安装没有启用openssl

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

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

;extension=php_openssl.dll
去掉分号

extension=php_openssl.dll
HTTPS现在应该在php中为您工作。

在我的情况下(Windows 10,PHP7.3.24),它是


()

那篇文章中所有答案的可能重复之处在于我已经做了一些事情,即取消php.ini文件中“extension=php_openssl.dll”上的行注释完成后您重新启动了服务器吗?是的,我已经尝试了第一个的结果:解析错误:语法错误,意外:在命令行的第行1@AdamF您要么没有复制完全相同的行,要么输入错误。
extension=openssl