136

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

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

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

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

我错过了什么?

请指教。

4

13 回答 13

319

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

于 2013-01-10T19:32:15.513 回答
32

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

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

另外,将来要安装 PHP 和 Composer 等工具,我建议使用 Chocolatey 包管理器。然后就很简单了choco install composer。当然,在使用 choco 方法安装 Composer 之前,您仍然需要编辑 php.ini。在未来的 Windows 版本中,像 Chocolatey 这样的包管理工具将被嵌入到 Windows中,就像apt-get在 Ubuntu 中一样。开发人员的激动人心的时刻!

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

于 2015-02-24T10:50:10.063 回答
16

即使启用了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 文件。

于 2014-03-31T13:59:22.340 回答
12

;extension=php_openssl.dll在两者中取消注释

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

它会起作用的

于 2014-05-19T09:42:51.380 回答
5

C:\laravel-master>composer create-project laravel/laravel 安装 laravel/laravel (v4.0.6) - 安装 laravel/laravel (v4.0.6) [RuntimeException] 您必须启用 openssl 扩展才能通过 https 下载文件

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

C:\laravel-master>composer create-project laravel/laravel 安装 laravel/laravel (v4.0.6) - 安装 laravel/laravel (v4.0.6) 下载: 100% Created project in C:\laravel-master\laravel Loading composer包含包信息的存储库安装依赖项(包括 require-dev)

于 2013-08-08T04:25:52.537 回答
2

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

于 2015-04-29T17:56:11.353 回答
2

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

去掉开头的分号

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

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

于 2014-12-11T14:54:32.230 回答
1

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

于 2014-01-27T15:24:55.593 回答
1

您应该创建一个指向 php.ini 的符号链接。抱歉俄罗斯链接

于 2014-05-26T12:56:39.567 回答
1

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

;extension=php_openssl.dll

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

extension=php_openssl.dll

快乐编码。

于 2014-07-09T11:48:24.767 回答
0

For installing Composer below steps worked me:(WAMP version 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
于 2014-10-13T02:53:47.797 回答
0

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

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

或者

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

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

于 2017-03-31T14:42:08.410 回答
0

我面临着同样的问题。我将我的 php 文件夹从 php 重命名为php7_winxxxxphp 并且效果很好。看起来作曲家正在检查 .php_openssl 模块的位置c:/php/ext

您可能还需要添加c:/phpPATHin 环境变量

于 2018-01-16T18:50:36.850 回答