How to enable PHP's openssl extension to install Composer?

我试图在 WAMP 安装 Laravel。我得到一个警告消息,没有启用 开放,我已经在 WAMP。

下面是这条信息的截图。

enter image description here

315649 次浏览

WAMP 和 Composer 可能使用不同的 PHP 安装。编写器将使用在 PATH环境变量中设置的 PHP。

如果要启用 开放扩展来安装 作曲家,首先需要检查 PHP 安装的位置。

  1. 打开命令提示符,键入: echo %PATH%,然后检查 PHP 安装的位置。
  2. 转到该位置并编辑名为: php.ini的文件。
  3. Uncomment the line extension=php_openssl.dll by removing the semicolon at the beginning.

现在可以安装 Composer 了。

我用另一种方式解决了我的问题。问题是,wamp 的 GUI 有误导性: 它声称我启用了 php_openssl。.如果我点击同一个图形用户界面上的 php.ini。.它实际上表明 extension=php_openssl.dll是取消注释的。.

我不确定我是否使用了相同的安装版本的作曲家的 OP,但它实际上要求您在开始指定的 php.exe,您喜欢应用作曲家(这基本上确保没有人试图应用作曲家到错误的 PHP 可执行文件,因为发生了与 OP)。.

我解决这个问题的方法是在 wamp 包中安装 php: C:\wamp\bin\php\php5.4.12,然后查看 php.in。.当我打开它,我感到震惊的行 extension=php_openssl.dll实际上是注释!我删除了评论,效果还不错。

enter image description here

有两个 php.ini文件,一个用于开发,一个用于生产。离开这些,有另一个 php.ini文件的配置设置刚好在他们之上的齿轮像图标编辑。

我遇到了同样的问题,但是当我在查找 php.ini 和 php.exe 时,我在 C: UwAmp bin php php-5.4.15找到了 php.exe,而 php.ini 在 C: UwAmp bin apache 找到了 php.exe。 我只需在 C: UwAmp bin php php-5.4.15上复制 php.ini,取消对扩展名 = php _ openssl.dll 的注释,就可以修复它了。

我正在使用 WAMP 服务器。 实际上它的文件显示 openssl 是打开的。 但是我手动进入文件夹并编辑 php.ini。 然后我发现它没有打开 openssl. 我取消注释,它工作后 WAMP 重新启动。

C:\wamp\bin\php\php5.3.13

浏览到如下行:

;extension=php_openssl.dll

并删除行前的分号。重新启动 WAMP 服务器服务(点击图标托盘 > “重新启动所有服务”)

对于 WAMP 服务器,“ Enrique”给出的评论解决了我的问题。

Wamp 正在使用这个 php.ini:

c:\wamp\bin\apache\Apache2.4.4\bin\php.ini

但是作曲家使用的是来自 CLI 的 PHP,因此它正在读取这个文件:

c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)

对于编写器,必须在

c:\wamp\bin\php\php5.4.12\php.ini

改变:

;extension=php_openssl.dll

extension=php_openssl.dll

如果你仍然不能解决你的问题看看这个。这可能就是你要找的解决方案

C: wamp bin php php x-y-z 文件夹中有几个 php.ini 文件。您可以找到生产、开发和其他一些 php.ini 文件。没有编辑生产和开发文件的必要。找到与下图完全相同的文件。(你可以找到它。只需在搜索栏中输入 php.ini 并进行搜索)。打开该文件并删除;。保存文件并关闭它。重新启动 Wampp 服务器的所有服务。重新安装你的作曲家。

就是这样。

enter image description here

你需要启用 openssl 扩展

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

这是一个 php 配置文件,它的类型是“配置设置”,有一个类似于驱动程序记事本的图标。

  1. 用记事本或任何编辑器打开它,
  2. 搜索 openssl“ your ctrl + F”就可以了。
  3. 在 openssl 扩展之前有一个分号

    ;extension=php_openssl.dll
    

    切除分号

    extension=php_openssl.dll
    
  4. save the file and restart your WAMP server after that you're good to go. re-install the application again that should work.

Wamp 与 C 语言中的另一个 php.ini 一起工作: Wamp bin Apache2.4.4 bin php.ini。因此,您需要手动查找正确的文件,即 C: wamp bin php php5.4.12 php.ini 中的文件。取消对扩展名 = php _ openssl.dll 行的注释,只需再次尝试安装 Composer。

您需要在两个文件(php 和 apache)中都启用“扩展名 = php _ openssl.dll”:

  1. C: wamp bin php php5.3.13 php.ini
  2. C: wamp bin apache apache2.2.22 bin php.ini

我也遇到了同样的问题,在这里我找到了解决方案,在你的 Php.ini上你需要做一些改变:

  1. extension_dir = "ext"
  2. extension = php_openssl.dll

这里的每一个都会激活 openssl 扩展,但是在 windows 中你也需要激活扩展目录。

为了那些和我有同样问题的人。在做了以上所有的解决方案之后,仍然不适合我。我发现 uWamp 正在 bin/apache 目录中创建 PHP.INI 文件。因此,我必须将 PHP.INI 文件复制到 php 安装目录,即 bin/php/phpXXXX 目录。这也应该是您从编写器设置中选择的 php.exe 所在的位置。

希望这个能帮上忙。

在编辑了“正确的”文件(都是 php.ini 的)之后,问题仍然存在。 我的 解决方案是:

  1. 添加 System 变量: OPENSSL _ CONF

    OPENSSL _ CONF 的值应该是当前 php 版本的 OPENSSL.cnf 文件。

对我来说是:

  • C:\wamp\bin\php\php5.6.12\extras\ssl\openssl.cnf

-> Restart WAMP 现在应该可以了

资料来源: http://php.net/manual/en/openssl.installation.php

如果从源代码进行编译,那么将 extension=php_openssl.dll添加到 php.ini 文件可能是 不是工作

若要解决此问题,请打开命令提示符并键入 php -i。向上滚动到第一行,它将告诉您有关 php.ini 文件的最新错误。

To solve the issue, find the php_openssl.dll file, for me it was in the very same directory of the compilation output: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS 因此,只需将扩展名所在的目录添加到 php.ini:

extension_dir = "C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS"

希望这个错误不会再出现

如果你在 WAMP 堆栈之一的 Windows没有上做这件事,这里有一些方法

  1. Download an 用于 Windows 的 PHP 安装. Generally you'll want a non-thread safe install. You can use 32-bit or 64-bit builds
  2. 解压缩文件的地方。我建议 C:\php。作曲家的安装程序发现它没有任何额外的提示
  3. 用于 Windows默认情况下不带 php.ini的 PHP 的最新版本。相反,您将看到两个文件,如下所示。将其中一个重命名为 php.ini或将其复制到 php.ini
    • Php.ini 开发
    • Php.ini-制作
  4. Open your php.ini file and remove the semicolon from this line (you might want to uncomment other things as well but this line is the only one necessary for Composer)

    ;extension=php_openssl.dll
    

That should be all you need to do. The Composer installer should do everything else you need from here.

这是一个老问题,但是我刚刚遇到了同样的问题(PHP7) ,最终解决方案非常简单。根据其他答案取消 php.ini中的行注释是不够的。我需要改变它:

;extension=php_openssl.dll

致:

extension=ext/php_openssl.dll

请注意 ext前缀。Dll 已经存在,但是位于子文件夹中。更改配置后,作曲家安装程序很高兴。

如果您正在使用 xampp。返回到安装开始时选择要使用哪个命令行 php 的位置,并选择包含 xampp 文件夹的路径。之后,如果您的安装程序说您得到了重复的‘ ext.php _ openssl.dll’注释一个 ssl 文件在您的 php ini 中使用’;’,您的安装应该顺利运行。