【问题标题】:How to enable PHP's openssl extension to install Composer?如何启用 PHP openssl 扩展来安装 Composer?
【发布时间】:2022-01-27 07:24:39
【问题描述】:

我正在尝试在 WAMP 设置中安装 Laravel。我收到一条警告消息,提示我没有启用我已经在 WAMP 中完成的 openssl

这是消息的截图。

【问题讨论】:

  • 在环境变量%PATH%中检查PHP的路径,可能Composer在其他位置寻找PHP而不是WampServer。

标签: php composer-php php-openssl


【解决方案1】:

如果您使用的是 xampp 。回到您在安装开始时选择要使用的命令行 php 的位置,然后选择包含 xampp 文件夹的路径。之后,如果您的安装程序说您有重复'extension=php_openssl.dll' 用';'在你的 php ini 中注释一个 ssl 文件,你的安装应该可以顺利运行。

【讨论】:

    【解决方案2】:

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

    ;extension=php_openssl.dll
    

    到:

    extension=ext/php_openssl.dll
    

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

    【讨论】:

      【解决方案3】:

      如果您在 Windows 没有其中一个 WAMP 堆栈的情况下执行此操作,请按以下步骤操作

      1. 下载installation of PHP for Windows。通常你会想要一个非线程安全的安装。您可以使用 32 位或 64 位版本
      2. 在某处解压 zip 文件。我建议C:\php。 Composer 的安装程序在没有任何额外提示的情况下找到了它
      3. 最新版本的 PHP for Windows 默认不附带php.ini。相反,您将看到两个文件,如下所述。将其中一个重命名为php.ini 或将其复制到php.ini
        • php.ini-开发
        • php.ini-生产
      4. 打开您的php.ini 文件并从该行中删除分号(您可能还想取消注释其他内容,但该行是 Composer 唯一需要的)

        ;extension=php_openssl.dll
        

      这应该就是你需要做的。 Composer 安装程序应该从这里完成您需要的所有其他操作。

      【讨论】:

      • 这是唯一一个具有正确解决方案(用于非 WAMP)设置的在线网站。谢谢!
      • 对于使用较新版本 PHP 的任何人:此行现在是 ;extension=openssl
      【解决方案4】:

      你需要在

      中启用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. 保存文件并重新启动您的 WAMP 服务器,然后您就可以开始了。 重新安装应该可以工作的应用程序。

      【讨论】:

        【解决方案5】:

        有两个php.ini 文件,一个用于开发,一个用于生产。留下这些,还有另一个php.ini 文件用于配置设置,就在它们上方,带有类似图标编辑的齿轮。

        【讨论】:

        • 另外,我的没有默认值。只需复制/粘贴 prod/dev 之一并将其重命名为 php.ini,然后在此处进行其他人建议的编辑。
        【解决方案6】:

        编辑“正确”文件(所有 php.ini 文件)后。我还有这个问题。 我的解决方案是:

        1. 添加系统变量:OPENSSL_CONF

          OPENSSL_CONF的值应该是你当前php版本的openssl.cnf文件。

        对我来说是:

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

        -> 重启 WAMP -> 现在应该可以工作了

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

        【讨论】:

          【解决方案7】:

          如果您从源代码编译,则将extension=php_openssl.dll 添加到 php.ini 文件可能不起作用

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

          要解决此问题,请找到 php_openssl.dll 文件,对我来说它位于编译输出的同一目录中: 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"
          

          希望错误会消失

          【讨论】:

            【解决方案8】:

            对于那些和我有同样问题的人。完成上述所有解决方案后,仍然对我不起作用。我发现,uWamp 正在 bin/apache 目录中创建 PHP.INI 文件。所以只好把PHP.INI文件复制到php安装目录,即bin/php/phpXXXX目录下。这也应该是您从作曲家设置中选择的 php.exe 所在的位置。

            希望这会有所帮助。

            【讨论】:

              【解决方案9】:

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

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

              这里的每个人都在谈论激活 openssl 扩展,但在 windows 中你也需要激活扩展目录。

              【讨论】:

              • 男士们,你是唯一提到extension_dir的人,你太棒了!
              • 这对我有用。我已经像turtorial一样直接下载了PHP。
              【解决方案10】:

              您需要在两个文件(php 和 apache)中启用“extension=php_openssl.dll”。我的电脑文件路径是这些:

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

              【讨论】:

                【解决方案11】:

                Wamp 与位于 C:\wamp\bin\apache\Apache2.4.4\bin\php.ini 中的另一个 php.ini 配合使用。所以你需要手动找到正确的文件,即在 C:\wamp\bin\php\php5.4.12\php.ini 中。取消注释 extension=php_openssl.dll 行,然后尝试再次安装 Composer。

                【讨论】:

                  【解决方案12】:

                  如果您仍然无法解决问题,请查看此内容。这可能是您正在寻找的解决方案

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

                  就是这样。

                  【讨论】:

                    【解决方案13】:

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

                    wamp 正在使用这个 php.ini:

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

                    但是 composer 正在使用 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
                    

                    【讨论】:

                    • 对于 MAMP,我必须将 php.ini 文件从 C:\MAMP\conf\phpx.xx 复制到 C:\MAMP\bin\php\phpx.xx (\conf\.. .. 到 \bin\...)
                    【解决方案14】:

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

                    浏览到以下行:

                    ;extension=php_openssl.dll
                    

                    并删除该行前面的分号。重新启动您的 WAMP 服务器服务(单击图标托盘 > '重新启动所有服务'

                    【讨论】:

                      【解决方案15】:

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

                      【讨论】:

                        【解决方案16】:

                        我遇到了同样的问题,但是当我在寻找 php.ini 和 php.exe 时,我在 C:\UwAmp\bin\php\php-5.4.15 找到了 php.exe,而 php.ini 在 C:\ UwAmp\bin\apache。 我只是在 C:\UwAmp\bin\php\php-5.4.15 复制 php.ini 并取消注释行 extension=php_openssl.dll 并修复它。

                        【讨论】:

                          【解决方案17】:

                          我以不同的方式解决了我的问题。问题是 wamp 的 GUI 具有误导性:它声称我启用了 php_openssl.. 如果我在同一个 GUI 上单击 php.ini.. 它实际上表明 extension=php_openssl.dll 未注释..

                          我不确定我是否使用相同的安装程序版本的 OP 作曲家,但它实际上在一开始就要求您指定您喜欢在其上应用作曲家的 php.exe(这基本上确保没有一个尝试将composer应用于错误的php可执行文件,就像OP发生的那样)..

                          我解决这个问题的方法是在 wamp 包中安装 php:C:\wamp\bin\php\php5.4.12 并在那里查看 php.in.. 当我打开它时,我很震惊 extension=php_openssl.dll 行实际上被评论了!我取消了它的注释,它工作得很好。

                          【讨论】:

                          • 感谢查看此答案后,我发现 wamp 使用的是 5.5.12,但我为 php.exe 选择了 5.4 目录
                          • 文件libeay32.dllliblibcrypto-*.dll 驻留在什么路径中? php.net/manual/de/openssl.installation.php
                          【解决方案18】:

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

                          如果要启用openssl扩展安装Composer,首先需要检查PHP安装的位置。

                          1. 打开命令提示符,输入:echo %PATH% 然后检查 PHP 安装的位置。
                          2. 转到该位置并编辑名为:php.ini 的文件。
                          3. 通过删除开头的分号来取消注释extension=php_openssl.dll 行。

                          现在您可以安装 Composer。

                          【讨论】:

                          • 碰巧我的 XAMPP 安装中没有这个扩展。我刚刚在 php.ini 上添加了 (extension=php_openssl.dll),它正在下载 laravel 依赖项。
                          • 当我输入 echo %PATH% 我得到:C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sysem32\WindowsPowerShell\v1.0\;C:\Program files\Microsoft\Web Platform Installer\;C:\Program Files\MySQL\MySQL Server 5.5\bin.. 这些目录中没有安装任何 php.. 我现在该怎么办?
                          • wamp 正在使用这个 php.ini:c:\wamp\bin\apache\Apache2.4.4\bin\php.ini 但作曲家正在使用 CLI 中的 PHP,因此它正在读取这个文件:c :\wamp\bin\php\php5.4.12\php.ini (所以你需要在那里启用openssl)
                          • 我正在使用 xampp,Composer 给出相同的打开 ssl 丢失错误,即使在删除 ';' 后也是如此php.ini 中的 openssl 扩展。
                          • 我还不得不取消注释 php.ini 中的 extension_dir = "ext" 行,但我使用的是普通 PHP 安装而不是 WAMP。
                          猜你喜欢
                          • 2013-08-06
                          • 2017-06-13
                          • 2016-02-14
                          • 2014-03-29
                          • 2017-03-04
                          • 2018-01-11
                          相关资源
                          最近更新 更多