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


113

我正在尝试在WAMP设置中安装Laravel。我收到未启用WAMP中已启用的openssl的警告消息。

这是消息的屏幕截图。

在此处输入图片说明


1
在环境变量中检查PHP的路径%PATH%,也许Composer在其他位置而不是WampServer处寻找PHP。
鲁本斯·马里努佐

我有同样的问题。我正在从wamp图标中编辑php.ini。但是我是手动完成的,重新启动了服务器并且可以正常工作。
他们

Answers:


121

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

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

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

现在您可以很好地安装Composer。


2
碰巧我的XAMPP安装中没有此扩展名。我刚刚在php.ini上添加了(extension = php_openssl.dll),它正在下载laravel依赖项。
Adrian P.

8
当我键入时,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 ..我现在该怎么办?
2014年

19
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)
Enrique

2
我正在使用xampp,即使删除了';',Composer也给出了相同的打开ssl丢失错误。php.ini中的openssl扩展名。
Shashikumar Misal,2014年

30
我也不得不取消对该行extension_dir = "ext"php.ini,但我使用纯PHP的安装,而不是WAMP。
David Harkness,2015年

62

我以不同的方式解决了我的问题。问题是wamp的GUI令人误解:它声称我已php_openssl启用..如果我单击php.ini相同的GUI ..它实际上表明extension=php_openssl.dll没有注释。

我不确定我是否使用的是OP的安装程序的同一安装程序版本,但实际上它一开始要求您指定要在php.exe其上应用Composer的对象(这基本上可以确保没有人尝试将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目录
Afnan Bashir

文件libeay32.dllliblibcrypto-*.dll驻留在哪个路径中?php.net/manual/de/openssl.installation.php
BernhardDöbler,18年

53

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

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

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


3
男人,你是唯一提到过的人extension_dir,你很棒!
giannis christofakis

这对我有用。我直接在本教程中下载了PHP 。
2016年

26

对于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

对于MAMP,我必须将php.ini文件从C:\ MAMP \ conf \ phpx.xx复制到C:\ MAMP \ bin \ php \ phpx.xx(\ conf \ ....到\ bin \ .. 。)
迈克

15

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

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

    ;extension=php_openssl.dll

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


2
这是只有在线才能获得正确解决方案(对于非WAMP)的解决方案。谢谢!
adamdehaven


8

这是一个古老的问题,但是我只是遇到了同样的问题(使用PHP7),最后的解决方案非常简单。但是,php.ini按照其他答案对行进行注释还不够。我需要将其更改为:

;extension=php_openssl.dll

至:

extension=ext/php_openssl.dll

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


7

您需要在以下位置启用openssl扩展

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

就是它具有类型的php配置文件,带有带有图标的驱动程序记事本的“配置设置”。

  1. 使用记事本或任何编辑器将其打开,
  2. 搜索openssl“您的Ctrl + F”即可。
  3. openssl扩展名前有一个分号

    ;extension=php_openssl.dll

    删除分号,您将拥有

    extension=php_openssl.dll
  4. 保存文件,然后重新启动WAMP服务器。再次重新安装应该可以使用的应用程序。

6

有两个php.ini文件,一个用于开发,一个用于生产。离开这些php.ini文件,在它们上方还有一个用于配置设置的文件,并带有图标编辑之类的工具。


另外,我的也没有默认值。只需复制/粘贴prod / dev并将其重命名为php.ini,然后在此处进行其他建议的编辑即可。
Brynn Bateman

3

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


2

我遇到了同样的问题,但是当我寻找php.ini和php.exe时,我在C:\ UwAmp \ bin \ php \ php \ php-php.5.4.15中找到了php.exe,而在C:\ UwAmp \ bin时却发现了php.ini。 \ apache。我只是将php.ini复制到C:\ UwAmp \ bin \ php \ php-5.4.15,然后取消注释扩展名= php_openssl.dll,并进行了修复。


2

我正在使用WAMP服务器。实际上,其文件显示openssl已打开。但是,我手动转到该文件夹​​并进行了编辑php.ini。然后我发现它没有打开openssl。我取消注释它,并且在WAMP重新启动后它可以工作了。


2

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

浏览到显示以下内容的行:

;extension=php_openssl.dll

并删除该行之前的分号。重新启动WAMP服务器服务(在图标栏中单击>“重新启动所有服务”


1

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

C:\ wamp \ bin \ php \ php xyz文件夹中有几个php.ini文件。您可能会发现生产,开发和其他一些php.ini文件。没有必要编辑生产和开发文件。查找与下图完全相同的文件。(您可以找到它。只需在搜索栏中键入php.ini并进行搜索)。打开文件并删除;来自extension = php_openssl.dll。保存文件并关闭它。重新启动Wampp服务器中的所有服务。重新安装您的作曲家。

这就对了。

在此处输入图片说明


1

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。


1

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

希望这可以帮助。


1

如果从源代码编译,则添加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"

希望错误会消失


0

如果您使用的是xampp,请返回到安装开始时要使用的命令行php的位置,然后选择包含xampp文件夹的路径。 php_openssl.dll'用';'注释您php ini中的一个ssl文件,您的安装应该可以顺利进行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.