如何启用PHP的openssl扩展来安装Composer?

Fir*_*iew 112 php composer-php php-openssl

我正在尝试在WAMP设置中安装Laravel.我收到一条警告信息,因为我没有启用我在WAMP中已经完成的openssl.

这是该消息的屏幕截图.

在此输入图像描述

Rub*_*zzo 119

WAMP和Composer可能正在使用不同的PHP安装.Composer将在PATH环境变量中使用PHP集.

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

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

现在您可以安装Composer.

  • 我还必须取消注释`php.ini`中的`extension_dir ="ext"`行,但我使用的是普通的PHP安装而不是WAMP. (29认同)
  • 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(所以你需要在那里启用openssl) (19认同)
  • 当我键入`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 ..我现在该怎么办? (8认同)
  • 我的XAMPP安装没有这个扩展.我刚刚在php.ini上添加了(extension = php_openssl.dll),它正在下载laravel依赖项. (2认同)
  • 我正在使用xampp,即使在删除';'之后,Composer也会给出相同的开放ssl缺失错误 php.ini中的openssl扩展. (2认同)

abb*_*ood 61

我以不同的方式解决了我的问题.问题是wamp的GUI有误导性:它声称我已php_openssl启用..如果我点击php.ini相同的GUI ..它实际上显示extension=php_openssl.dll没有注释..

我不确定我是否使用OP的编辑器的相同安装程序版本,但它实际上要求你在开头指定php.exe你想要应用作曲家(这基本上确保没有人试图应用作曲家与OP发生的错误的php可执行文件..)

我解决这个问题的方法是通过自己进入wamp软件包中的php安装:C:\wamp\bin\php\php5.4.12然后看php.in那里......当我打开它时,我感到震惊的是这条线extension=php_openssl.dll实际上已被评论过了!我取消评论它,它工作得很好.

在此输入图像描述


Fra*_*ral 52

我有同样的问题,在这里我发现的解决方案,在你的php.ini上你需要做一些改变:

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

这里的每个人都会讨论openssl扩展,但是在windows中你也需要激活扩展dir.

  • 男人你是唯一一个提到`extension_dir`的人,你很棒! (3认同)

小智 25

对于WAMP服务器,"Enrique"给出的评论解决了我的问题.

wamp正在使用这个php.ini:

c:\wamp\bin\apache\Apache2.4.4\bin\php.ini
Run Code Online (Sandbox Code Playgroud)

但是composer正在使用CLI中的PHP,因此它正在读取这个文件:

c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)
Run Code Online (Sandbox Code Playgroud)

对于作曲家,您必须启用扩展程序

c:\wamp\bin\php\php5.4.12\php.ini
Run Code Online (Sandbox Code Playgroud)

更改:

;extension=php_openssl.dll 
Run Code Online (Sandbox Code Playgroud)

extension=php_openssl.dll
Run Code Online (Sandbox Code Playgroud)


Mac*_*ity 13

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

  1. 下载适用于Windows的PHP安装.通常,您需要非线程安全安装.您可以使用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
    
    Run Code Online (Sandbox Code Playgroud)

这应该就是你需要做的.Composer安装程序应该从此处执行您需要的所有其他操作.

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

Moh*_*put 11

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

  1. C:\ WAMP\BIN\PHP\php5.3.13\php.ini中
  2. C:\ WAMP\BIN\apache的\ apache2.2.22\BIN\php.ini中


小智 8

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

;extension=php_openssl.dll
Run Code Online (Sandbox Code Playgroud)

至:

extension=ext/php_openssl.dll
Run Code Online (Sandbox Code Playgroud)

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


小智 7

你需要启用openssl扩展

C:\wamp\bin\php\php5.4.12\php.ini 
Run Code Online (Sandbox Code Playgroud)

这是具有类型的php配置文件,其"配置设置"具有驱动程序 - 记事本之类的图标.

  1. 用记事本或任何编辑器打开它,
  2. 搜索openssl"你的ctrl + F"会做什么.
  3. 在openssl扩展之前有一个分号

    ;extension=php_openssl.dll
    
    Run Code Online (Sandbox Code Playgroud)

    删除分号,你会有

    extension=php_openssl.dll
    
    Run Code Online (Sandbox Code Playgroud)
  4. 保存文件并重新启动您的WAMP服务器,之后您就可以开始了.再次重新安装应该工作的应用程序.


小智 6

有两个php.ini文件,一个用于开发,一个用于生产.保留这些,在php.ini它们上面有另一个配置设置文件,带有图标编辑的齿轮.


Maf*_*afu 5

编辑“正确”文件(所有 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