作曲家警告: openssl 扩展缺失。如何在 WAMP 中启用

尝试通过 安装安装程序Win7/64 + WampServer 2.2上安装 作曲家依赖管理工具,我得到了以下信息:

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 再试一次
  6. 使用了 永远不会和 OpenSSL 之后,我不确定应该设置什么,所以我尝试使用 https 浏览到我的一个本地站点。失败了。

我错过了什么?

请指示。

161385 次浏览

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

C: laravel-master > 作曲家 create-project laravel/laravel 安装幼稚园/幼稚园(v4.0.6) - 装设幼稚园/幼稚园(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 > 作曲家 create-project laravel/laravel 安装幼稚园/幼稚园(v4.0.6) - 装设幼稚园/幼稚园(v4.0.6) 下载率: 100% 在 C 语言中创建的项目: laravel-master laravel 使用包信息加载编写器存储库 安装依赖项(包括 request-dev)

简短而贴心,在 wamp/bin/php/php5.3.13(或任何 php 版本)中取消注释这一行:
;extension=php_openssl.dll(移除 ;)
现在运行 Composer 的命令行安装,不会出现错误。
可以出发了!

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

C: wamp bin php php5.4.3 php.ini

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

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

所以我只需要在第一个 php.ini 文件中取消注释就可以了。默认情况下,我的机器上就是这样安装 WAMP 的。我没有去改变任何事情,所以这可能会发生在其他人身上。这与 Augie Gardner 上面的答案基本相同,但我想指出的是,您可能有两个 php.ini 文件。

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

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

会成功的

您应该做一个到 php.ini 的符号链接。

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

;extension=php_openssl.dll

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

extension=php_openssl.dll

编码愉快。

对于安装 Composer,下面的步骤对我很有用: (WAMP 版本2.4 x64位)

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

您需要编辑“ c: Program Files wamp bin php php5.3.13 php.ini”文件 搜寻: 扩展 = php _ openssl. dll

删除开头的分号

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

在作曲家安装窗口只需点击回来,然后下一步(或关闭它,重新开始) ,它应该工作

除了取消对 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一样简单。当然,在安装 Composer 之前,您仍然需要编辑 php.ini。在 Windows 的未来版本 像 Chocolatey 这样的软件包管理工具将被嵌入到 Windows 中中,就像 apt-get在 Ubuntu 中一样。对于开发人员来说,激动人心的时刻即将到来!

无论使用哪种方法,在安装 Composer 之后,不要忘记重新启动终端。无论您是使用 Command Prompt、 Bash (使用 Git 安装)还是 Powershell,都需要在更新的环境变量工作之前重新启动它。

打开 wamp/bin/apache/apache2.4.4/bin/php 配置。 Wamp/bin/php/php5.4.16/php conf 设置、 php-ini 产品、 php-ini dev、 phpForApache 查找 扩展名 = php _ openssl. dll并删除 ;取消注释

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

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

或者

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

它是相对于 httpd.exe Apache HTTP Server 的(C: myStack apache bin) 但是如果你想它与 作曲家或任何你需要的 物理路径,因为 cli 模式不使用网络服务器!

我也面临着同样的问题。我把我的 php 文件夹从 php7_winxxxx重命名为 php,它工作得很好。看起来作曲家正在检查 c:/php/ext中 php _ openssl 模块的位置。

你可能还需要在环境变量中将 c:/php加入到 PATH