Composer警告:openssl扩展名丢失。如何在WAMP中启用


132

试图通过安装程序安装程序Win7 / 64 + WampServer 2.2上安装Composer依赖性管理工具,我得到以下消息:

缺少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并再次尝试。相同的警告消息:“缺少openssl扩展名”
  6. 由于从未使用过OpenSSL,所以我不确定应该设置什么,因此我尝试使用https浏览到我的本地站点之一。失败了。

我想念什么?

请指教。


哇。我刚去Google尝试获取更多信息,并且该帖子显示在搜索结果中。已经?该死的太快了。:-}
卧铺

您是否重新启动了Web服务器?
periklis 2012年

是的,我确实重新启动了服务器。
卧铺

不知道您尝试使用ssl的范围如何,但这可能会有所帮助:phpjoel.com/2011/04/07/…。如果这样做没有帮助,则在备份数据库和文件后,您始终可以尝试使用旧的重新安装方法进行故障排除。
Cameeob2003

我刚刚将WampServer上的版本升级到最新版本。相同的消息。我只是继续安装。到目前为止,没有明显的错误。奇怪的。
卧铺

Answers:


316

WAMP在CLI和Apache中使用不同的php.ini文件。通过WAMP UI启用php_openssl时,请为Apache而不是CLI启用它。您需要修改C:\ wamp \ bin \ php \ php-5.4.3 \ php.ini才能在CLI中启用它。


2
您救了我令laravel失去的爱...为什么他们不像旧版本那样离开安装:)
Tom

1
赫克·拉拉维尔(Heck laravel)带我来了这里
tomexsans 2014年

1
我正在使用uwamp,在哪里可以找到ini文件。
Sujeet Kumar 2014年

Answer也适用于EasyPHP(右键单击系统托盘EasyPHP图标,选择Configuration | PHP,这将在记事本中打开php.ini,搜索openssl,取消注释行)
stifin 2015年

我应该为xampp做什么?..我收到了无法发送此消息的错误消息。Mailer错误:扩展名丢失:openssl 、、、
pc

27

除了取消对;extension=php_openssl.dll符合php.ini其他人都已经提到的,你还必须确保;extension_dir = "ext"线也注释。要取消注释,请删除前缀的分号并保存。

在WAMP和XAMPP之类的软件包中可能已经没有注释该行,但是在Windows的简单PHP下载中却没有,因此值得进行验证。另外,您还必须php.ini通过复制以下示例之一来创建文件,例如php.ini-development将其复制到新文件,然后将其命名php.ini。然后在那里进行这些更改。

另外,将来,要安装PHP和Composer之类的工具,我建议使用Chocolatey软件包管理器。然后就这么简单choco install composer。当然,在使用choco方法安装Composer之前,您仍然需要编辑php.ini。在Windows的未来版本中,类似Chocolatey的软件包管理工具将被烘焙到Windows中apt-get在Ubuntu中也是如此。开发人员激动人心的时代!

无论使用哪种方法,在安装Composer之后,请不要忘记重启终端。无论您使用的是命令提示符,Bash(与Git一起安装)还是Powershell,都需要在重新启动环境变量之前重新启动它。


4
如果您尝试在Windows 10上安装composer并遵循了本指南,

绝对是。这是真的。我知道这一点,但是忘记了extWindows上的这一行。感谢您的提醒。
WM

16

即使启用了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文件。


安装时给出的默认路径错误,指向正确的php.exe解决了问题,谢谢。
Sandesh Damkondwar 2015年

12

取消注释;extension=php_openssl.dll

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

它会工作


我正在使用xampp ..所以我编辑了2个名为c / php / php.ini和c / apache / bin / php.ini ..的文件;在该扩展名中删除了分号; extension = php_openssl.dll ..但仍然像此邮件错误:扩展名丢失:openssl ..
pcs

@saina您重新启动服务器了吗?还运行phpinfo()来检查配置文件的位置。
伊万卡·托多罗娃

5

C:\ laravel-master> composer create-project laravel / laravel安装laravel / laravel(v4.0.6)-安装laravel / laravel(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> composer创建项目laravel / laravel安装laravel / laravel(v4.0.6)-安装laravel / laravel(v4.0.6)下载:100%在C:\ laravel-master \ laravel中创建项目Loading composer包含软件包信息的存储库安装依赖项(包括require-dev)


我知道这是题外话,但是您如何在EasyPhp上安装作曲家。我只会遇到错误,必须重新安装所有组件。
HenryW 2014年

2

您需要编辑“ c:\ Program Files \ wamp \ bin \ php \ php5.3.13 \ php.ini”文件,搜索:; extension = php_openssl.dll

开始时删除分号

注意:如果无法保存文件,则需要以管理员身份对其进行编辑。(在win7上)转到“开始”菜单,搜索记事本,右键单击记事本,单击“以管理员身份运行”

在composer安装窗口中,只需单击返回,然后单击下一步(或将其关闭,然后重新开始),它应该可以工作



1

简短有趣,请取消注释此行wamp/bin/php/php5.3.13(或任何php版本):(
;extension=php_openssl.dll 删除;
现在运行Composer的命令行安装。您不会有任何错误。
好去!



1

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

;extension=php_openssl.dll

去除 ”;” 这样,它将起作用。

extension=php_openssl.dll

编码愉快。


0

要通过以下步骤安装Composer,我可以使用:(WAMP版本2.4 x64bit)

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

0

所有这些答案都是好的,但是实际上,如果您想了解,如果您希望所有未注释的扩展都可以正常使用,则扩展目录必须正确。可以写一条物理或相对路径

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

要么

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

它是相对于httpd.exe Apache Web服务器(C:\ myStack \ apache \ bin)的,但是,如果您希望它与Composer或其他组件一起使用,则需要物理路径,因为cli模式不使用Web服务器!


0

我面临着同样的问题。我将我的php文件夹从重命名为php7_winxxxxphp,并且工作正常。看来作曲家正在检查中的php_openssl模块的位置c:/php/ext

您可能还需要添加c:/phpPATHin环境变量中

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.