Composer 警告:缺少 openssl 扩展。如何在 WAMP 中启用

Posted

技术标签:

【中文标题】Composer 警告:缺少 openssl 扩展。如何在 WAMP 中启用【英文标题】:Composer Warning: openssl extension is missing. How to enable in WAMP 【发布时间】:2012-12-13 06:41:28 【问题描述】:

尝试通过Setup Installer 在Win7/64 + WampServer 2.2 上安装Composer 依赖管理工具,我收到以下消息:

缺少 openssl 扩展,会降低 Composer 的安全性和稳定性。 如果可能,您应该启用它或使用 --with-openssl 重新编译 php

所以这就是我所做的......

    从托盘中我的 Wamp 图标,单击 php > php extensions > php_openssl 这表明通过在扩展程序旁边放置一个复选标记完成了任务 然后我重新启动了 WampServer 然后从托盘中的 Wamp 图标中,我单击 php > php.ini 并搜索 openssl 以验证它没有被注释掉)。不是。 然后我回到 Composer-Setup.exe 并再次尝试。 相同的警告消息:“缺少 openssl 扩展” 从未使用过 OpenSSL,我不确定应该设置什么,因此我尝试使用 https 浏览到我的本地站点之一。失败了。

我错过了什么?

请指教。

【问题讨论】:

哇。我刚去谷歌试图获取更多信息,这篇文章出现在搜索结果中。已经?该死的太快了。 :- 你重启了网络服务器吗? 是的,我确实重启了服务器。 不确定您尝试使用 ssl 获得的范围有多大,但这可能会有所帮助:phpjoel.com/2011/04/07/…。如果这对您没有帮助,您始终可以在备份数据库和文件后尝试旧的重新安装故障排除方法。 我刚刚将 WampServer 上的版本升级到最新版本。相同的消息。我只是继续安装。到目前为止,没有明显的错误。很奇怪。 【参考方案1】:

WAMP 在 CLI 和 Apache 中使用不同的 php.ini 文件。当您通过 WAMP UI 启用 php_openssl 时,您为 Apache 启用它,而不是为 CLI 启用它。 您需要修改 C:\wamp\bin\php\php-5.4.3\php.ini 为 CLI 启用它。

【讨论】:

你拯救了我对 laravel 的爱......为什么他们没有像旧版本一样离开安装 :) 哎呀 laravel 把我带到了这里 我正在使用uwamp,在哪里可以找到ini文件。 答案也适用于EasyPHP(右键系统托盘EasyPHP图标,选择Configuration | PHP,在记事本中打开php.ini,搜索openssl,取消注释该行) 我应该为 xampp 做什么?.. 我收到了这样的错误消息无法发送。邮件程序错误:缺少扩展名:openssl ,,,【参考方案2】:

除了取消其他人提到的php.ini 中的;extension=php_openssl.dll 行之外,您还必须确保;extension_dir = "ext" 行也未注释。要取消注释,请删除前缀分号并保存。

该行可能已经在 WAMP 和 XAMPP 等软件包中取消注释,但它不在 Windows 的普通 PHP 下载中,因此值得验证。此外,您必须通过将其中一个示例(如php.ini-development)复制到一个新文件中来创建php.ini 文件,然后将其命名为php.ini。然后在那里进行这些更改。

另外,将来要安装 PHP 和 Composer 等工具,我建议使用 Chocolatey 包管理器。然后就像choco install composer 一样简单。当然,在使用 choco 方法安装 Composer 之前,您仍然需要编辑 php.ini。在 Windows 的未来版本中,package management tools like Chocolatey will be baked into Windows 与 apt-get 在 Ubuntu 中的方式相同。开发者将迎来激动人心的时刻!

无论使用哪种方法,安装 Composer 后,不要忘记重新启动终端。无论您使用的是命令提示符、Bash(与 Git 一起安装)还是 Powershell,都需要在更新的环境变量生效之前重新启动它。

【讨论】:

如果您尝试在 Windows 10 上安装 composer 并遵循此guide,这是正确的答案【参考方案3】:

即使启用了 openssl,我也遇到了同样的问题。问题是 Composer 安装程序正在查看此配置文件:

C:\wamp\bin\php\php5.4.3\php.ini

但是加载的配置文件其实在这里:

C:\wamp\bin\apache\apache2.2.22\bin\php.ini

所以我只需要在第一个 php.ini 文件中取消注释它就可以了。这就是默认情况下在我的机器上安装 WAMP 的方式。我没有去改变任何东西,所以这可能也会发生在其他人身上。这与上面奥吉加德纳的回答基本相同,但我只是想指出您可能有两个 php.ini 文件。

【讨论】:

安装时给出的默认路径错误,指向正确的 php.exe 解决了问题,谢谢。【参考方案4】:

取消注释;extension=php_openssl.dll

wamp\bin\php\php5.4.12\php.ini
wamp\bin\apache\Apache2.4.4\bin\php.ini

会有用的

【讨论】:

我正在使用 xampp.. 所以我编辑了 2 个名为 c/php/php.ini 和 c/apache/bin/php.ini.. 的文件在此 ;extension=php_openssl.dll 中删除了分号..但仍然像这个 Mailer Error: Extension missing: openssl.. @saina 你重启你的服务器了吗?同时运行 phpinfo() 来检查配置文件的位置。【参考方案5】:

C:\laravel-master>composer 创建项目 laravel/laravel 安装 laravel/laravel (v4.0.6) - 安装 laravel/laravel (v4.0.6) [运行时异常] 您必须启用 openssl 扩展才能通过 https 下载文件

我正在使用 EasyPhp(WAMP 类型)。在任务栏中的 EasyPHP 图标中,右键单击并选择配置,然后选择 PHP。我将在记事本中打开PHP.ini 文件配置,在记事本中搜索查找或CTRL+F 查找单词OPENSSL 你会发现这个;extension=php_openssl.dll 只是除掉 ;并且extension=php_openssl.dll 处于活动状态。

C:\laravel-master>composer 创建项目 laravel/laravel 安装 laravel/laravel (v4.0.6) - 安装 laravel/laravel (v4.0.6) 下载:100% 在 C:\laravel-master\laravel 中创建项目 使用包信息加载作曲家存储库 安装依赖项(包括require-dev)

【讨论】:

我知道这是题外话,但是你如何用 EasyPhp 安装作曲家。我只得到错误,必须重新安装所有。【参考方案6】:

您需要编辑“c:\Program Files\wamp\bin\php\php5.3.13\php.ini”文件 搜索: ;extension=php_openssl.dll

去掉开头的分号

注意:如果保存文件不起作用,那么您需要以管理员身份对其进行编辑。 (win7)进入开始菜单,搜索记事本,右键记事本,点击“以管理员身份运行”

在作曲家安装窗口中,只需单击返回然后下一步(或关闭它并重新开始),它应该可以工作

【讨论】:

【参考方案7】:

打开 wamp/bin/apache/apache2.4.4/bin/php 配置.. wamp/bin/php/php5.4.16/php conf 设置、php-ini 生产、php-ini 开发、phpForApache 查找 extension=php_openssl.dll 并通过删除 ; 取消注释

【讨论】:

***.com/questions/14062055/…可能重复【参考方案8】:

简短而甜蜜,在wamp/bin/php/php5.3.13(或任何php版本)中取消注释此行:;extension=php_openssl.dll(删除;) 现在运行 Composer 的命令行安装。你不会有错误。 很高兴!

【讨论】:

【参考方案9】:

您应该创建一个指向 php.ini 的符号链接。对不起russian link。

【讨论】:

【参考方案10】:

是的,您必须打开 php.ini 并删除分号:

;extension=php_openssl.dll

去掉“;”像这样,它会工作。

extension=php_openssl.dll

快乐编码。

【讨论】:

【参考方案11】:

对于安装 Composer,以下步骤对我有用:(WAMP 版本 2.4 x64bit)

edit ->
**C:\wamp\bin\php\php5.4.12\php.ini**
;;uncomment below line or remove the semicolons ';'
extension=php_openssl.dll

**C:\wamp\bin\apache\Apache2.4.4\bin\php.ini**

extension=php_openssl.dll

【讨论】:

【参考方案12】:

所有这些答案都很好,但实际上,如果您想了解,如果您希望所有未注释的扩展都正常工作,则扩展目录需要正确。可以写一个物理或相对路径,比如

extension_dir = "C:/myStack/php/ext"

extension_dir = "../../php/ext"

它是相对于 httpd.exe Apache web 服务器 (C:\myStack\apache\bin) 但是,如果您希望它与 Composer 或任何您需要 物理路径 的东西一起使用,因为 cli 模式不使用网络服务器!

【讨论】:

【参考方案13】:

我遇到了同样的问题。我将我的 php 文件夹从 php7_winxxxx 重命名为 php,它运行良好。看起来 composer 正在检查 c:/php/ext 中 php_openssl 模块的位置。

您可能还需要将c:/php 添加到环境变量中的PATH

【讨论】:

以上是关于Composer 警告:缺少 openssl 扩展。如何在 WAMP 中启用的主要内容,如果未能解决你的问题,请参考以下文章

处理“缺少 openssl 扩展:在 XAMPP 中

在Windows的Wamp环境下安装Composer

作曲家下载错误。 extension=php_openssl.dll 在 php.ini 中找不到

composer安装

解决windows下Composer因php_openssl扩展缺失而安装失败的问题

Composer 安装:缺少 json 扩展名