Composer 无法在 Windows 上运行,出现 [Composer\Exception\NoSslException] 错误

Posted

技术标签:

【中文标题】Composer 无法在 Windows 上运行,出现 [Composer\\Exception\\NoSslException] 错误【英文标题】:Composer not working on windows, gives [Composer\Exception\NoSslException] errorComposer 无法在 Windows 上运行,出现 [Composer\Exception\NoSslException] 错误 【发布时间】:2019-03-06 18:17:21 【问题描述】:

我正在尝试在 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

【问题讨论】:

您确定您更改了正确的php.ini 文件。执行 php --ini 以查看您的 PHP CLI 正在使用哪个 php.ini 文件 PHP CLI 和 Apache 使用的 PHP 不一定相互关联。重新启动 Apache 与 PHP CLI 无关,再次让我认为您正在编辑错误的 php.ini 文件 @RiggsFolly 我明白了,但我确定我编辑了正确的 php.ini 文件。因为我在编辑之前检查过使用phpinfo()方法 从终端执行> php --ini查看输出。它会告诉您PHP CLI 正在使用哪个php.ini 文件 我猜你已经安装了 2 个 PHP。我还猜想你的 PATH 指向 PHP5 文件夹,这就是你在 CLI 中得到它的原因。检查您的 PATH,如果我是正确的,请将 PATH 更改为指向 PHP7 文件夹 【参考方案1】:

我遇到了同样的问题。我做了以下事情来确保作曲家能奏效。

找到与您发出命令的位置相对应的 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"
启用扩展

然后以相同的方式取消注释扩展。通常需要以下内容。 (但请从您​​从 composer 命令中看到的消息中找出您需要什么)

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

【讨论】:

谢谢你解决了我的问题 我只需将 php.ini 复制到 C:\Windows 就足够了 如果这没有帮助,试试这个:youtrack.jetbrains.com/issue/WI-52973 哇,我的天使。【参考方案2】:

在我升级到 PHP 7.4.10 (cli)

之前,我在我的 Windows 10 机器上运行 php7.2.x

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

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

php --ini

我正在查看正确的文件。

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

    php.ini-production.ini php.ini-development.ini

我复制了第一个文件的内容并粘贴到我的 php.ini 文件中。 然后在重新启动后,我看到大量其他模块没有被加载。

然后我进入了我的 php.ini 文件的 Dynamic Extensions 部分,不得不取消注释以下所有扩展:

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 服务器。

这一次,一切正常!

【讨论】:

以上是关于Composer 无法在 Windows 上运行,出现 [Composer\Exception\NoSslException] 错误的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Composer 在 Windows 上安装 Mailgun 库

Composer 无法在 Windows 上安装 Piwik

无法弄清楚如何使用适用于 Linux 和 composer 的 Windows 子系统运行 box\Spout

Windows PATH 变量不适用于 Composer

如何使用Hyperledger Fabric和Composer构建区块链网络(上)

无法使用 composer 在 Windows 上安装 laravel,导致错误无法打开 Stream:Permission denied