Composer警告:缺少openssl扩展.如何在WAMP中启用


Composer Warning: openssl extension is missing. How to enable in WAMP

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

缺少openssl扩展,这将降低Composer的安全性和稳定性。如果可能的话,您应该启用它或使用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浏览到我的一个本地网站。它失败了

我错过了什么?

请告知。

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

除了其他人提到的取消对php.ini;extension=php_openssl.dll行的注释外,您还必须确保;extension_dir = "ext"行也被取消注释。若要取消注释,请删除带前缀的分号并保存。

这一行可能已经在WAMP和XAMPP等软件包中取消了注释,但它不在Windows的普通PHP下载中,因此值得验证。此外,您必须通过将其中一个示例(如php.ini-development(复制到一个新文件,然后将其命名为php.ini来创建php.ini文件。然后在那里进行这些更改。

此外,在未来,要安装PHP和Composer等工具,我建议使用Chocolatey包管理器。那么它就像choco install composer一样简单。当然,在使用choco方法安装Composer之前,您仍然需要编辑php.ini。在未来的Windows版本中,像Chocolatey这样的包管理工具将被移植到Windows中,就像apt-get在Ubuntu中一样。开发人员将迎来激动人心的时刻!

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

即使启用了openssl,我也遇到了同样的问题。问题是Composer安装程序正在查看以下配置文件:

C: ''wamp''bin''php''php5.4.3''php.ini

但加载的配置文件实际上就在这里:

C: ''wamp''bin''apache2.2.22''bin''php.ini

所以我只需要在第一个php.ini文件中取消对它的注释,就可以了。默认情况下,WAMP就是这样安装在我的机器上的。我没有去改变任何事情,所以这可能也会发生在其他人身上。这与Augie-Gardner上面的回答基本相同,但我只是想指出,您可能有两个php.ini文件。

在两个中取消注释;extension=php_openssl.dll

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

它将工作

C:''laravel-master>作曲家创建项目laravel/laravel安装laravel/laravel(v4.0.6(-安装laravel/laravel(v4.0.6([运行时异常]您必须启用openssl扩展才能通过https下载文件

我使用的是EasyHP(WAMP类型(。在任务栏的EasyHP图标中,右键单击并选择配置,然后选择PHP。我将在记事本中打开PHP.ini文件配置,在记事本中搜索find或CTRL+F单词OPENSSL,您会发现此;extension=php_openssl.dll只需删除;并且CCD_ 15是活动的。

C:''laravel-master>作曲家创建项目laravel/laravel安装laravel/laravel(v4.0.6(-安装laravel/laravel(v4.0.6(下载:100%在C:''laravel-master''laravel中创建项目正在加载包含包信息的composer存储库安装依赖项(包括require-dev(

您需要编辑"c:''Program Files''wamp''bin''php''php5.3.13''php.ini"文件搜索:;extension=php_opensl.dll

删除开头的分号

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

在composer安装窗口中,只需单击"上一步",然后单击"下一步"(或关闭它并重新启动(,它应该可以运行

打开的wamp/bin/apache/apache2.4.4/bin/php配置。。wamp/bin/php/php5.4.16/php-conf设置,php-in-production,php-in-dev,phpForApache查找extension=php_openssl.dll并通过删除取消注释

简短而甜蜜,在wamp/bin/php/php5.3.13(或任何php版本(中取消注释此行:
;extension=php_openssl.dll(移除;(
现在运行Composer的命令行安装。你不会有错误
很好!

您应该制作一个到php.ini的符号链接。很抱歉有俄语链接。

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

;extension=php_openssl.dll

像这样删除";",它就会起作用。

extension=php_openssl.dll

快乐编码。

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

所有这些答案都很好,但事实上,如果你想理解,如果你希望所有未注释的扩展都能工作,那么扩展目录就必须是正确的。可以像一样写入物理或相对路径

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

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

它相对于httpd.exe Apache web服务器(C:''myStack''Apache''bin(但是,如果您希望它与Composer或任何东西一起使用,您需要物理路径,因为cli模式不使用web服务器!

我也面临同样的问题。我将我的php文件夹从php7_winxxxx重命名为php,它运行得很好。看起来composer正在检查c:/php/ext中php_opensl模块的位置。

您可能还需要将c:/php添加到环境变量中的PATH