Php Composer不在windows上工作,出现[Composer\Exception\NossleException]错误

Php Composer不在windows上工作,出现[Composer\Exception\NossleException]错误,php,openssl,composer-php,Php,Openssl,Composer Php,我正在尝试在windows 10上安装laravel。我安装了composer来安装laravel,但它给出了以下错误 [Composer\Exception\NossleException]openssl扩展是 SSL/TLS保护需要,但不可用。如果可以的话 如果不启用openssl扩展,可以在以下位置禁用此错误: 通过将“禁用tls”选项设置为true,您可以自行承担风险 命令不重要,它给出了以上所有命令的错误 我检查了问题并使用了解决方案,但它对我不起作用 我试过这些方法 composer

我正在尝试在windows 10上安装laravel。我安装了composer来安装laravel,但它给出了以下错误

[Composer\Exception\NossleException]openssl扩展是 SSL/TLS保护需要,但不可用。如果可以的话 如果不启用openssl扩展,可以在以下位置禁用此错误: 通过将“禁用tls”选项设置为true,您可以自行承担风险

命令不重要,它给出了以上所有命令的错误

我检查了问题并使用了解决方案,但它对我不起作用

我试过这些方法

composer config -g -- disable-tls true

extension=php_openssl.dll // open openssl extension in php.ini file. - I restarted apache after that but nothing changed

我也有同样的问题。我做了以下几件事,以确保作曲家的作品

  • 查找php.ini,它对应于发出命令的位置
php--ini

校正前的样本输出:

Configuration File (php.ini) Path: C:\WINDOWS
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
这是一个骗局。当我查看php安装目录时,我发现没有php.ini。有两个文件
php.ini开发
php.ini生产
。只需将其中一个重命名为
php.ini

然后,在执行
php--ini时,应该会看到正确的ini路径

  • 设置扩展目录
然后,打开php.ini文件并取消注释以下行
;扩展名\u dir=“ext”
应该是

extension_dir = "ext"
  • 启用扩展
然后以相同的方式取消对扩展的注释。以下内容通常是必需的。(但请从composer命令中看到的消息中找到所需内容)


在升级到php7.4.10(cli)

当我第一次打开php.ini文件时,出乎意料的是,它是空的

为了确保我看的是正确的文件,我看了

php --ini
我在看正确的文件

我查看了XAMPP的php文件夹,发现了两个文件:

  • php.ini-production.ini
  • php.ini-development.ini
  • 我复制了第一个文件的内容并粘贴到我的php.ini文件中。 然后在重启之后,我看到很多其他模块没有被加载

    然后,我进入php.ini文件的动态扩展名部分,不得不取消对以下所有扩展名的注释:

    extension=bz2
    extension=curl
    extension=ffi
    extension=ftp
    extension=fileinfo
    extension=gd2
    extension=gettext
    extension=gmp
    extension=intl
    extension=imap
    extension=ldap
    extension=mbstring
    extension=exif      ; Must be after mbstring as it depends on it
    extension=mysqli
    extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
    extension=odbc
    extension=openssl
    extension=pdo_firebird
    extension=pdo_mysql
    extension=pdo_oci
    extension=pdo_odbc
    extension=pdo_pgsql
    extension=pdo_sqlite
    extension=pgsql
    extension=shmop
    
    然后在保存我的php.ini文件后重新启动Apache服务器


    这一次,一切顺利

    您确定更改了正确的
    php.ini
    文件吗。执行
    php--ini
    以查看您的php CLI使用的是哪个
    php.ini
    文件php CLI和Apache使用的php不一定相互关联。重新启动Apache与PHP CLI无关,这再次让我觉得您编辑的
    PHP.ini文件是错误的file@RiggsFolly我明白了,但我确信我编辑了正确的php.ini文件。因为我在编辑之前使用终端do
    >php--ini
    中的
    phpinfo()
    方法进行了检查,并查看了输出。它将告诉您php客户端正在使用哪个
    php.ini
    文件,我猜您已经安装了2个php。我还猜想您的路径指向PHP5文件夹,这就是为什么您在CLI中得到它。请检查您的路径,如果我是对的,请将路径更改为指向PHP7文件夹谢谢您解决了我的问题只是将php.ini复制到C:\Windows就足够了!!这解决了我的问题
    extension=bz2
    extension=curl
    extension=ffi
    extension=ftp
    extension=fileinfo
    extension=gd2
    extension=gettext
    extension=gmp
    extension=intl
    extension=imap
    extension=ldap
    extension=mbstring
    extension=exif      ; Must be after mbstring as it depends on it
    extension=mysqli
    extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
    extension=odbc
    extension=openssl
    extension=pdo_firebird
    extension=pdo_mysql
    extension=pdo_oci
    extension=pdo_odbc
    extension=pdo_pgsql
    extension=pdo_sqlite
    extension=pgsql
    extension=shmop