安装 Composer 失败并出现“缺少 openssl 扩展”错误
Posted
技术标签:
【中文标题】安装 Composer 失败并出现“缺少 openssl 扩展”错误【英文标题】:Install Composer fails with "The openssl extension is missing" error 【发布时间】:2014-09-24 02:34:19 【问题描述】:我正在尝试安装 Composer,但出现以下错误:
“您机器上的某些设置使 Composer 无法正常工作。 确保您修复了下面列出的问题并再次运行此脚本:
缺少 openssl 扩展,这意味着安全 HTTPS 传输是不可能的。 如果可能,您应该启用它或使用 --with-openssl" 重新编译 php"
然后我进入我的 php.ini-production 并取消注释: "extension=php_openssl.dll"
这还是不行,我还有什么需要做的吗?
【问题讨论】:
Composer Warning: openssl extension is missing. How to enable in WAMP的可能重复 【参考方案1】:更改 php.ini 中的任何内容后,您必须重新启动服务器,确保首先这样做。
【讨论】:
我只是想在本地安装它...这是否意味着重新启动我的计算机?即,我下载了 zip 并解压缩了它......这就是我所做的事情...... @keynesiancross 当您为 php 安装新的扩展时,需要重新启动 php 进程,以便它实际上可以访问该扩展。您可能已经安装并编辑了配置文件,但您仍然需要重新启动 php 进程,以便它重新加载具有新扩展名的配置文件(.ini)。根据您使用的 Web 服务器,这样做会有所不同。sudo service apache2 restart
如果您使用 apache2(如果您使用的是 apache1,则使用 httpd 而不是 apache2)和 mod_php 或 sudo service php-fpm restart 如果您使用的是 php-fpm。【参考方案2】:
我怀疑“php.ini-production”是一个适用于实时环境的虚拟配置文件。在控制台上执行php -i
并找到“php.ini”路径,以查看它期望保存 ini 文件的位置。这通常需要“php.ini”,并且可能实际上不存在 - 如果不存在,请将 php.ini-development(或类似的)复制到所需的位置。
这接近(很长)输出的顶部,因此您可能会发现将其重定向到文件很有帮助 (php -i > C:\phpinfo.txt
)。
【讨论】:
谢谢伙计。你能解释一下这部分吗:在控制台执行 php -i 并找到 'php.ini' 路径我在这方面是全新的...... 您在 Windows 上,对吗?打开cmd
窗口,然后键入该命令。试一试,如果它不起作用,Windows 上最常见的问题是设置PATH
。如果遇到php
未找到的错误,请搜索“Windows PHP 路径”。
我刚刚将 php.ini-production 复制到一个名为 php.ini 的新文件中,它解决了问题。为什么 PHP 7 不只附带一个名为 php.ini 的文件,而不是两个名为 php.ini-development 和 php.ini-production 的文件?
@MatthewPark:这可能是您的 Linux 发行版维护人员做出的决定。您使用的是什么操作系统?
@halfer 我在 Windows 10 上【参考方案3】:
在 WAMPserver 中编辑此文件:
D:\wamp\bin\php\php5.3.10\php.ini
或
D:\wamp\bin\php\php5.4.12\php.ini (基于版本)
不要在 WAMP 服务器菜单中使用 php.ini。不起作用。转到 wamp 的根目录,如上所示,使用 D 作为根目录。
【讨论】:
【参考方案4】:创建一个php.ini
(例如来自php.ini-production
),在编辑器中打开它以管理员身份(!),删除extension=php_openssl.dll
前面的注释分号;
,设置extension_dir
正确,然后保存文件。之后它应该可以工作。但再一次:以管理员身份打开并编辑php.ini
。
【讨论】:
我这样做了,但没有任何变化。【参考方案5】:您还需要取消注释扩展目录。例如,在您的 php.ini 文件中找到这一行:
;extension_dir = "ext"
去掉前面的分号,保存文件。我相信这会奏效。
记得打开你的php.ini管理员模式
【讨论】:
谢谢你,这对我很有帮助:)【参考方案6】:如果您在 Windows 上使用 MAMP,则需要将 php.ini-development
的扩展名更改为 php.ini
然后,将此行 ;extension_dir = "ext"
粘贴到 php.ini 文件中,在第一个扩展名出现之前,并取消注释其他行 ;extension=php_openssl.dll
删除前缀分号。
别忘了重启apache
【讨论】:
或 - 将php.ini
从 C:\MAMP\conf\phpx.x.x
复制到 C:\MAMP\bin\php\phpx.x.x
我还必须将安装路径从“C:\Progarm Files\php”移动到“C:\php”以上是关于安装 Composer 失败并出现“缺少 openssl 扩展”错误的主要内容,如果未能解决你的问题,请参考以下文章
Composer 安装的 PHPUnit 二进制文件使用系统提供的 ResultPrinter 并失败
解决Windows下网络原因Composer安装失败问题的方法
安装 cms-form-builder 时,composer 失败并显示 Failed to generate package-lock.json