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-development
和 php.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
如何使用Hyperledger Fabric和Composer构建区块链网络(上)
无法使用 composer 在 Windows 上安装 laravel,导致错误无法打开 Stream:Permission denied