ChatGPT解决这个技术问题 Extra ChatGPT

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

尝试通过 Setup InstallerWin7/64 + WampServer 2.2 上安装 Composer 依赖项管理工具,我收到以下消息:

缺少 openssl 扩展,会降低 Composer 的安全性和稳定性。如果可能,您应该启用它或使用 --with-openssl 重新编译 php

所以这就是我所做的......

从托盘中的 Wamp 图标,单击 php > php extensions > php_openssl 这表明任务已通过在扩展旁边放置复选标记完成我然后重新启动 WampServer 然后从托盘中的 Wamp 图标,我单击 php > php.ini 并搜索openssl 来验证它没有被评论)出来。不是。然后我回到 Composer-Setup.exe 并再次尝试。相同的警告消息:“openssl extension is missing” 从未使用过 OpenSSL,我不确定应该设置什么,所以我尝试使用 https 浏览到我的本地站点之一。它失败了。

我错过了什么?

请指教。

哇。我刚去谷歌试图获取更多信息,这篇文章出现在搜索结果中。已经?该死的太快了。 :-}
您是否重新启动了 Web 服务器?
是的,我确实重新启动了服务器。
不确定您尝试使用 ssl 获得的范围有多大,但这可能会有所帮助:phpjoel.com/2011/04/07/…。如果这对您没有帮助,您可以在备份数据库和文件后尝试使用旧的重新安装故障排除方法。
我刚刚将 WampServer 上的版本升级到最新版本。相同的消息。我只是继续安装。到目前为止,没有明显的错误。诡异的。

V
Valery I.

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


你拯救了我对 laravel 的爱……为什么他们没有像旧版本一样离开安装 :)
哎呀 laravel 把我带到了这里
我正在使用 uwamp 在哪里可以找到 ini 文件。
Answer也适用于EasyPHP(右击系统托盘EasyPHP图标,选择Configuration | PHP,在记事本中打开php.ini,搜索openssl,取消注释该行)
我应该为 xampp 做些什么?.. 我收到类似此消息的错误无法发送。邮件程序错误:缺少扩展名:openssl ,,,
S
Scott Pigeon

除了取消其他人提到的 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 的未来版本中,package management tools like Chocolatey will be baked into Windows 与 Ubuntu 中的 apt-get 相同。开发人员的激动人心的时刻!

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


如果您尝试在 Windows 10 上安装 composer 并遵循此 guide,则这是正确答案
r
regularmike

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

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

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

C:\wamp\bin\apache\apache2.2.22\bin\php.ini

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


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

在两者中取消注释 ;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 ..
@saina 你重启你的服务器了吗?同时运行 phpinfo() 来检查配置文件的位置。
B
Brad Mace

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


我知道这是题外话,但是您如何使用 EasyPhp 安装作曲家。我只会收到错误,并且必须重新安装所有内容。
Z
Zemba Albert

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

去掉开头的分号

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

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


N
Njoroge Mathu

打开 wamp/bin/apache/apache2.4.4/bin/php config.. wamp/bin/php/php5.4.16/php conf 设置,php-ini 生产,php-ini 开发,phpForApache 找到 extension=php_openssl.dll 并取消注释通过消除 ;


A
Augie Gardner

简短而甜蜜,在 wamp/bin/php/php5.3.13(或任何 php 版本)中取消注释此行:
;extension=php_openssl.dll(删除 ;
现在运行 Composer 的命令行安装。您不会出错。
开始!


A
Alex Pliutau

您应该创建一个指向 php.ini 的符号链接。对不起russian link


S
Sujeet Kumar

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

;extension=php_openssl.dll

去除 ”;”像这样,它会工作。

extension=php_openssl.dll

快乐编码。


R
Ram

为了安装 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

F
François Breton

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

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

或者

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

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


t
tushortz

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

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅