Composer在Windows上不起作用,显示[Composer \ Exception \ NoSslException]错误

时间:2018-10-01 15:37:53

标签: php openssl composer-php

我正在尝试在Windows 10上安装laravel。我安装了composer来安装laravel,但这给了我下面的错误。

  

[Composer \ Exception \ NoSslException] openssl扩展名是   SSL / TLS保护必需,但不可用。如果你可以的话   不启用openssl扩展名,可以在禁用此错误   将'disable-tls'选项设置为true,则后果自负。

命令无关紧要,所有命令都会出现上述错误...

我检查了this个问题并使用了解决方案,但这对我不起作用。

我尝试了这些解决方案

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

2 个答案:

答案 0 :(得分:22)

我有同样的问题。为了确保作曲家能正常工作,我做了以下事情。

  • 找到与发出命令的位置相对应的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)

这里的C:\ WINDOWS是一个骗局。当我查看php安装目录时,发现没有php.ini。有两个文件php.ini-developmentphp.ini-production。只需将一个重命名为php.ini

那么当您进行php --ini

时,您应该会看到正确的ini路径。
  • 设置扩展目录

然后,打开php.ini文件并取消注释以下行 ;extension_dir = "ext" 应该是

extension_dir = "ext"
  • 启用扩展名

然后以相同方式取消注释扩展。通常需要以下内容。 (但是请根据从作曲家命令中看到的消息找出您需要的内容)

extension=fileinfo
extension=gd2
extension=mbstring
extension=openssl

答案 1 :(得分:0)

在升级到 PHP 7.4.10(cli)

之前,我在Windows 10计算机上运行php7.2.x

当我第一次提取php.ini文件时,令我惊讶的是它是空的。

为确保我在查看正确的文件,我做了

php --ini

我正在查看正确的文件。

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

  1. php.ini-production.ini
  2. 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服务器agan。

这一次,一切正常!